回答編集履歴

3

d

2019/06/13 04:09

投稿

tiitoi
tiitoi

スコア21956

test CHANGED
@@ -89,3 +89,75 @@
89
89
 
90
90
 
91
91
  ガンマ=2.0
92
+
93
+
94
+
95
+
96
+
97
+ ## 追記
98
+
99
+
100
+
101
+ > なぜfor文でできないのか,分かっていたら教えてもらえないでしょうか?
102
+
103
+
104
+
105
+ for 文の中に画素値を変更する処理がないからです。
106
+
107
+ 明るくするなら、`元の画素値 + 適当な値` を新しい画素値とする必要があるでしょう。
108
+
109
+
110
+
111
+ また 変更前の画像は (256, 256) の2次元の numpy 配列で表されます。
112
+
113
+ この配列の各要素にアクセスする場合、img[行方向のインデックス, 列方向のインデックス] とする必要がありますので、ループが2重になるはずです。
114
+
115
+
116
+
117
+ ```python
118
+
119
+ import cv2
120
+
121
+ import numpy as np
122
+
123
+
124
+
125
+ # グレースケール形式で画像を読み込む。
126
+
127
+ gray = cv2.imread("sample.jpg", cv2.IMREAD_GRAYSCALE)
128
+
129
+
130
+
131
+ # リサイズする。
132
+
133
+ resized = cv2.resize(gray, (256, 256))
134
+
135
+
136
+
137
+ print(resized.shape) # (256, 256)
138
+
139
+ height, width = resized.shape
140
+
141
+
142
+
143
+ alpha = 100 # 加算する画素値
144
+
145
+ dst = np.zeros_like(resized) # リサイズした画像と同じ型、形状の配列を作成する。
146
+
147
+ for row in range(height):
148
+
149
+ for col in range(width):
150
+
151
+ # 元の画素値に alpha 足して、出力の画素値にする。
152
+
153
+ # ただし、[0, 255] に値をクリップする。
154
+
155
+ dst[row, col] = np.clip(resized[row, col] + alpha, 0, 255)
156
+
157
+
158
+
159
+
160
+
161
+ cv2.imwrite("dst.png", dst)
162
+
163
+ ```

2

d

2019/06/13 04:09

投稿

tiitoi
tiitoi

スコア21956

test CHANGED
@@ -38,7 +38,7 @@
38
38
 
39
39
  def gamma_correction(img, gamma=1.0):
40
40
 
41
- # ーブルを作成する。(i / 255)^gamma * 255
41
+ # ーブルを作成する。(i / 255)^gamma * 255
42
42
 
43
43
  table = (np.arange(256) / 255) ** gamma * 255
44
44
 

1

f

2019/06/13 02:46

投稿

tiitoi
tiitoi

スコア21956

test CHANGED
@@ -72,7 +72,7 @@
72
72
 
73
73
 
74
74
 
75
- 入力画
75
+ 入力画
76
76
 
77
77
 
78
78