画像を二値化して表示する
やること
- ファイル名を指定して画像ファイルをグレースケールで読み出す
- グレースケール画像を二値化し別ウィンドウに表示する
- キー入力で表示用ウィンドウを破棄し終了
使った関数
- cv2.imread : 画像ファイルの読み出し
第2引数にcv2.IMREAD_GRAYSCALE(または0)を指定することでグレースケール変換し読み出す - cv2.threshold : 画像の閾値処理
- cv2.imshow : 画像を別ウィンドウに表示する
環境
準備
画像ファイルはフリー写真素材ぱくたそからダウンロードさせていただき、"bricks.jpg"というファイル名で、jupyter notebookファイル(***.ipynb)と同じディレクトリに保存しました。
コード
import cv2 #OpenCVのインポート fname="bricks.jpg" #開く画像ファイル名 threshold=127 #二値化閾値 img = cv2.imread(fname,cv2.IMREAD_GRAYSCALE) #画像をグレースケールで読み出しオブジェクトimgに代入 ret, img_binary= cv2.threshold(img, threshold, 255, cv2.THRESH_BINARY) #オブジェクトimgを閾値threshold(127)で二値化しimg_binaryに代入 cv2.imshow("binary",img_binary) #別ウィンドウを開き(ウィンドウ名 "binary")オブジェクトimg_binaryを表示 cv2.waitKey(0) #キー入力待ち cv2.destroyAllWindows() #ウインドウを閉じる
実行結果