質問編集履歴

3

日本語の修正

2017/07/24 22:30

投稿

退会済みユーザー
test CHANGED
File without changes
test CHANGED
@@ -112,7 +112,7 @@
112
112
 
113
113
  ###試したこと
114
114
 
115
- unit8部分unit16にしたり、thresholdを使おうとしましたが、うまくいかずに今に至ります。
115
+ OpenCV画像のビット数変えたり、thresholdを使おうとしましたが、うまくいかずに今に至ります。
116
116
 
117
117
 
118
118
 

2

説明の変更

2017/07/24 22:30

投稿

退会済みユーザー
test CHANGED
File without changes
test CHANGED
@@ -1,10 +1,12 @@
1
1
  ###前提・実現したいこと
2
2
 
3
- 色に色を加算して、色の混合をしようとしています。
3
+ 色に色を加算して、色の混合をしようとしています。Microsoft office付属のpicture managerの色の補正機能のようなことを、CUIにしたい、というのがわかりやすいでしょうか。
4
4
 
5
- ・目標: 桁あふれする場合には255で頭打ち
6
5
 
6
+
7
+ ・第一目標: 加算後に桁あふれする場合には255で頭打ち
8
+
7
- 最終目標:sinθかシグモイドのような関数を使って、値が飽和しないように補正量を調整
9
+ 第二目標:sinθかシグモイドのような関数を使って、値が飽和しないように補正量を調整
8
10
 
9
11
 
10
12
 
@@ -12,19 +14,21 @@
12
14
 
13
15
  色を加算したときに、255を超えると値がオーバーフローして値が異常になります。
14
16
 
15
- 具体的には、数学上では`255+1=256`なのですが、OpenCV上では`255+1=1`(8ビットで桁あふれするとでもいうのでょうか)となります。
17
+ 具体的には、数学上では`255+1=256`なのですが、OpenCV上では`255+1=1`(8ビットで桁あふれ?)します。
16
18
 
17
19
 
18
20
 
19
- カラー画像の場合では、白いところが青や赤、緑になってしまうような状態です。[こちらの「平均画像」のうさぎさん](http://www.mwsoft.jp/programming/computer_vision_with_python/1_3_numpy.html)のような感じです。
21
+ |生+0|生+32|生+64|生+128|
20
22
 
23
+ |:--|:--:|--:|--:|
21
24
 
22
-
23
- 再現性のあるコードを抜粋しましたので下記に添付します。
25
+ |![生](1cbc5d5aaf2765a82a89a63197ede858.png)|![生+32](4e9d44499b9774a1e62603de3f079ccf.png)|![生+64](2e42c10b9879ef817f0b6f0b95e9f1bb.png)|![生+128](15344975395d4770d1ec88b84fdf60e0.png)|
24
26
 
25
27
 
26
28
 
27
29
  ###該当のソースコード
30
+
31
+
28
32
 
29
33
  ```Python
30
34
 
@@ -36,77 +40,71 @@
36
40
 
37
41
 
38
42
 
39
- # Image size (origin)
43
+ FILENAME ="lenna.png"
40
-
41
- img_size = 10
42
44
 
43
45
 
44
46
 
45
- # Color overflow test
47
+ def generate_image(path,b,g,r):
46
48
 
49
+ # Load image
50
+
47
- img_1 = np.ones((img_size, img_size), np.uint8) * 1
51
+ img = cv2.imread(path, cv2.IMREAD_COLOR)
52
+
53
+ #cv2.imshow("img",img)
54
+
55
+ #cv2.waitKey(0)
48
56
 
49
57
 
50
58
 
51
- # 1 BLACK
59
+ # Split image
52
60
 
53
- cv2.imshow("img_1",img_1)
61
+ img_b, img_g, img_r = cv2.split(img)
54
-
55
- print("---")
56
-
57
- print("img_1")
58
-
59
- print(img_1)
60
-
61
- cv2.waitKey(0)
62
62
 
63
63
 
64
64
 
65
- # 1 WHITE
65
+ # Add required value
66
66
 
67
- img_255 = np.ones((img_size, img_size), np.uint8) * 255
67
+ img_b = img_b + b
68
68
 
69
- cv2.imshow("img_255",img_255)
69
+ img_g = img_g + g
70
70
 
71
- print("---")
72
-
73
- print("img_255")
74
-
75
- print(img_255)
71
+ img_r = img_r + r
76
-
77
- cv2.waitKey(0)
78
72
 
79
73
 
80
74
 
81
- # 255 BLACK : OVERFLOW
75
+ # Merge each cannels
82
76
 
83
- img_256 = img_1 + img_255
77
+ img = cv2.merge([img_b, img_g, img_r])
84
-
85
- cv2.imshow("img_256",img_256)
86
-
87
- print("---")
88
-
89
- print("img_256")
90
-
91
- print(img_256)
92
-
93
- cv2.waitKey(0)
94
78
 
95
79
 
96
80
 
97
- # 384 GRAY
81
+ #cv2.imwrite("test.png",img)
98
82
 
99
- img_384 = img_256 + 128
83
+ return img
100
84
 
101
- print("---")
102
85
 
103
- print("384")
104
86
 
105
- cv2.imshow("img_384",img_384)
87
+ def show_image(path,b,g,r):
106
88
 
107
- print(img_384)
89
+ img = generate_image(FILENAME,b,g,r)
108
90
 
91
+ cv2.imshow("B:%s G:%s R:%s"%(b,g,r),img)
92
+
109
- cv2.waitKey(0)
93
+ cv2.waitKey(0)
94
+
95
+
96
+
97
+
98
+
99
+ if __name__ == "__main__":
100
+
101
+ show_image(FILENAME,0,0,0)
102
+
103
+ show_image(FILENAME,32,32,32)
104
+
105
+ show_image(FILENAME,64,64,64)
106
+
107
+ show_image(FILENAME,128,128,128)
110
108
 
111
109
 
112
110
 

1

不要項目の削除

2017/07/24 22:13

投稿

退会済みユーザー
test CHANGED
File without changes
test CHANGED
@@ -21,14 +21,6 @@
21
21
 
22
22
 
23
23
  再現性のあるコードを抜粋しましたので下記に添付します。
24
-
25
-
26
-
27
- ```
28
-
29
- エラーメッセージ
30
-
31
- ```
32
24
 
33
25
 
34
26