log/20250424/岩田 瑛
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
検索
|
最終更新
|
ヘルプ
]
開始行:
[[FrontPage]]
*画像関連 [#rde2915d]
**画像の拡大・縮小 [#b63e3525]
画像の高さ(h)と幅(w)を取得し、幅を基準にして画像を任意の値に縮小or拡大をするための縮小率を計算し、cv2.resize 関数で、画像をリサイズしています。
h,w = img.shape[:2]
r = X/w Xピクセルに縮小するための比の計算
img = cv2.resize(img, None, fx=r,fy=r)#縦横の比を維持したまま拡大、縮小
**注目領域の取得 [#i47b95ed]
注目領域を取得するためには、始点と終点の座標を取り(ここは気合)、それをもとに取得する。
kaoimg = img[52:216, 189:365]注目領域の取得[始点y:終点y+1, 始点x:終点x+1]
**画像の四則演算 [#p3a7c5ee]
四則演算の(+)画素の値増えるから明るくなる、(-)暗くなる。(/)全体的に暗くなるが、実数でないと行けないため、//を利用する。~
また、0~255の範囲を超えると、計算結果-255の結果が値になる。~
ex)暗いところは明るく、明るいところはそのままにしておくコード
kaoimg = kaoimg//2+127#0=>127,255=>255にする書き方
*GUI操作( mouse, waitKey, double buffering ) [#k94df602]
**cv2.setMouseCallback でマウス操作を追加。~ [#d63135a5]
よく使うマウスイベントは以下の通り~
左ボタンクリック (EVENT_LBUTTONDOWN, EVENT_LBUTTONUP)~
中ボタンクリック (EVENT_MBUTTONDOWN, EVENT_MBUTTONUP)~
右ボタンクリック (EVENT_RBUTTONDOWN, EVENT_RBUTTONUP)~
左ボタンダブルクリック (EVENT_LBUTTONDBLCLK)~
中ボタンダブルクリック (EVENT_MBUTTONDBLCLK)~
右ボタンダブルクリック (EVENT_RBUTTONDBLCLK)~
マウスホイール (EVENT_MOUSEWHEEL, getMouseWheelDelta)~
ex)画像上でクリックした場所に丸を描く
#code(py){{
def draw_circle(event, x, y, flags, param):
if event == cv2.EVENT_LBUTTONDOWN: # 左クリックされたら
cv2.circle(img, (x, y), 20, (0, 0, 255), -1) # 赤丸を描く
}}
**cv2.waitKey() でキー入力待ち。~ [#b397a8bd]
ex)ESCキー(27)が押されたら終了。
#code(py){{
if cv2.waitKey(10) & 0xFF == 27: # ESCキー = 27
break
}}
**.copy [#k2f5af7c]
ex)範囲取得した画像のコピーを作成.copyは入力のコピーを作る際にも有用
kaoimg = img[52:216, 189:365].copy()
*番外編 [#f73300e5]
**範囲取得した画像内を加工 [#d5acaa2b]
ex)範囲内に赤四角作成
cv2.rectangle(kaoimg, (10,10),(30,30),(0,0,255),-1)
**半透明塗りつぶしのやり方 [#sd7081a6]
ex)半透明赤の塗りつぶしのやり方①~
真っ黒塗りつぶしを作成→真っ黒を真っ赤にする→元画像に半透明真っ赤合体の流れで行う
redimg = np.zeros( kaoimg.shape, dtype=np.uint8) 真っ黒作成
redimg[:,:] = (0,0,255)真っ黒を真っ赤に
kaoimg = kaoimg//2 + redimg//2半透明真っ赤合体
半透明赤の塗りつぶしのやり方②~
redimg = np.zeros( kaoimg.shape, dtype=np.uint8) 真っ黒作成
redimg[:,:] = (0,0,255)真っ黒を真っ赤に
kaoimg = (kaoimg*.7 + redimg*.3).astype(np.uint8)
img[52:216, 189:365] = kaoimg部分的に加工したものを元画像に貼り付ける=>透明色の塗りつぶし
終了行:
[[FrontPage]]
*画像関連 [#rde2915d]
**画像の拡大・縮小 [#b63e3525]
画像の高さ(h)と幅(w)を取得し、幅を基準にして画像を任意の値に縮小or拡大をするための縮小率を計算し、cv2.resize 関数で、画像をリサイズしています。
h,w = img.shape[:2]
r = X/w Xピクセルに縮小するための比の計算
img = cv2.resize(img, None, fx=r,fy=r)#縦横の比を維持したまま拡大、縮小
**注目領域の取得 [#i47b95ed]
注目領域を取得するためには、始点と終点の座標を取り(ここは気合)、それをもとに取得する。
kaoimg = img[52:216, 189:365]注目領域の取得[始点y:終点y+1, 始点x:終点x+1]
**画像の四則演算 [#p3a7c5ee]
四則演算の(+)画素の値増えるから明るくなる、(-)暗くなる。(/)全体的に暗くなるが、実数でないと行けないため、//を利用する。~
また、0~255の範囲を超えると、計算結果-255の結果が値になる。~
ex)暗いところは明るく、明るいところはそのままにしておくコード
kaoimg = kaoimg//2+127#0=>127,255=>255にする書き方
*GUI操作( mouse, waitKey, double buffering ) [#k94df602]
**cv2.setMouseCallback でマウス操作を追加。~ [#d63135a5]
よく使うマウスイベントは以下の通り~
左ボタンクリック (EVENT_LBUTTONDOWN, EVENT_LBUTTONUP)~
中ボタンクリック (EVENT_MBUTTONDOWN, EVENT_MBUTTONUP)~
右ボタンクリック (EVENT_RBUTTONDOWN, EVENT_RBUTTONUP)~
左ボタンダブルクリック (EVENT_LBUTTONDBLCLK)~
中ボタンダブルクリック (EVENT_MBUTTONDBLCLK)~
右ボタンダブルクリック (EVENT_RBUTTONDBLCLK)~
マウスホイール (EVENT_MOUSEWHEEL, getMouseWheelDelta)~
ex)画像上でクリックした場所に丸を描く
#code(py){{
def draw_circle(event, x, y, flags, param):
if event == cv2.EVENT_LBUTTONDOWN: # 左クリックされたら
cv2.circle(img, (x, y), 20, (0, 0, 255), -1) # 赤丸を描く
}}
**cv2.waitKey() でキー入力待ち。~ [#b397a8bd]
ex)ESCキー(27)が押されたら終了。
#code(py){{
if cv2.waitKey(10) & 0xFF == 27: # ESCキー = 27
break
}}
**.copy [#k2f5af7c]
ex)範囲取得した画像のコピーを作成.copyは入力のコピーを作る際にも有用
kaoimg = img[52:216, 189:365].copy()
*番外編 [#f73300e5]
**範囲取得した画像内を加工 [#d5acaa2b]
ex)範囲内に赤四角作成
cv2.rectangle(kaoimg, (10,10),(30,30),(0,0,255),-1)
**半透明塗りつぶしのやり方 [#sd7081a6]
ex)半透明赤の塗りつぶしのやり方①~
真っ黒塗りつぶしを作成→真っ黒を真っ赤にする→元画像に半透明真っ赤合体の流れで行う
redimg = np.zeros( kaoimg.shape, dtype=np.uint8) 真っ黒作成
redimg[:,:] = (0,0,255)真っ黒を真っ赤に
kaoimg = kaoimg//2 + redimg//2半透明真っ赤合体
半透明赤の塗りつぶしのやり方②~
redimg = np.zeros( kaoimg.shape, dtype=np.uint8) 真っ黒作成
redimg[:,:] = (0,0,255)真っ黒を真っ赤に
kaoimg = (kaoimg*.7 + redimg*.3).astype(np.uint8)
img[52:216, 189:365] = kaoimg部分的に加工したものを元画像に貼り付ける=>透明色の塗りつぶし
ページ名: