円を描画する
やること
- 横600px縦400pxの白1色の画像を生成する
- 白1色の画像にX20,Y10を左上、X300,Y100を中心、半径100の円を太さ3pxの青い線を描画し別ウィンドウで表示
- キー入力で表示用ウィンドウを破棄し終了
使った関数
- np.ones : 要素の値が1の新規配列の生成
- cv2.circle : 円描画
- cv2.imshow : 画像を別ウィンドウに表示する
環境
コード
import cv2 #OpenCVのインポート import numpy as np #numpyをnpという名前でインポート #400要素X600要素X3要素で全要素の値が255(白)の3次元配列を生成しオブジェクトimgに代入 img=np.ones((400, 600, 3), np.uint8)*255 #オブジェクトimgにX300,Y100を中心、半径100の円を青:BGR=(255,0,0)、太さ3pxの線で描画 cv2.circle(img, (300, 200), 100, (255, 0, 0), 3) cv2.imshow("circle",img) #別ウィンドウを開き(ウィンドウ名 "circle")オブジェクトimgを表示 cv2.waitKey(0) #キー入力待ち cv2.destroyAllWindows() #ウインドウを閉じる
実行結果
別ウィンドウが開き、横600px縦400pxの全面白画像にX20,Y10を左上、X300,Y100を中心、半径100の円が青い線で描画されます
中を塗りつぶす場合は線の太さを-1とします。
コード
import cv2 #OpenCVのインポート import numpy as np #numpyをnpという名前でインポート img=np.ones((400, 600, 3), np.uint8)*255 #400要素X600要素X3要素で全要素の値が255(白)の3次元配列を生成しオブジェクトimgに代入 cv2.circle(img, (300, 200), 100, (255, 0, 0), -1) #オブジェクトimgにX300,Y100を中心、半径100の円を青で塗りつぶし描画 cv2.imshow("circle",img) #別ウィンドウを開き(ウィンドウ名 "circle")オブジェクトimgを表示 cv2.waitKey(0) #キー入力待ち cv2.destroyAllWindows() #ウインドウを閉じる
実行結果
以下のサイトを参考にさせていただきました
Pythonの文法メモ >> 【OpenCV】円を描画するcircle()関数