#author("2025-04-23T10:11:27+09:00","","") #author("2025-04-23T10:11:51+09:00","","") [[log/20250422/佐藤綺羅]] *原画像と処理画像の表示 [#pd6cd9bf] **2窓表示 [#ka51bfff] 複数のウィンドウに1枚ずつ画像を表示したい場合は、単純にcv2.imshow関数を複数用意すれば良い。~ 以下にプログラムの実行例を示す。 取り込んだ画像~ &attachref(neko.jpeg); コード #code(python){{ #!/usr/bin/python import cv2 img = cv2.imread("neko.jpeg") gimg = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY) cv2.imshow("neko", img) cv2.imshow("neko_gray", gimg) cv2.waitKey(0) }} 実行結果~ &attachref(neko.jpeg);~ &attachref(neko_gray.png);~ これら2つの画像が別々のウィンドウで表示される。 cv2.waitKey(0)の命令は1つだけで良い。 キー入力がされると複数のウィンドウが同時に閉じる。 **cv2.shape [#d2dcffe2] cv2.shapeは画像の高さ、幅、チャンネル数を格納するタプルである。~ 以下に、neko.jpegとそのグレー画像の画像情報を表示するプログラムの実行例を示す。 コード #code(pyton){{ #!/usr/bin/python import cv2 img = cv2.imread("neko.jpeg") gimg = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY) print(gimg.shape, img.shape) }} 実行結果 (183, 275) (183, 275, 3) この画像は縦183、横275の画素数で構成されていることが分かる。~ また、グレー画像は高さと幅のみの二次元配列となることも読み取れる。 **hconcat関数 [#u459d6f5] **cv2.hconcat関数 [#u459d6f5] cv2.hconcat([画像1, 画像2]) 2つの画像を横に連結させるcv2クラスのメンバ関数。~ プログラム例 #code(python){{ #!/usr/bin/python import cv2 img = cv2.imread("neko.jpeg") gimg = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY) g2img = cv2.cvtColor(gimg, cv2.COLOR_GRAY2BGR) nimg = cv2.hconcat([img, g2img]) cv2.imshow("neko_neko",nimg) cv2.waitKey(0) }} 実行結果~ &attachref(neko_neko.png); g2img = cv2.cvtColor(gimg, cv2.COLOR_GRAY2BGR) の処理を行わず、 nimg = cv2.hconcat([img, gimg]) と書くとエラーが出る。~ これはグレー画像とカラー画像では情報を格納する配列の要素数が異なるからである。~