#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])
と書くとエラーが出る。~
これはグレー画像とカラー画像では情報を格納する配列の要素数が異なるからである。~

トップ   編集 差分 履歴 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS