Pythonでいろいろやってみる

Pythonを使った画像処理や機械学習などの簡単なプログラムを載せています。

円を描画する

やること
  • 横600px縦400pxの白1色の画像を生成する
  • 白1色の画像にX20,Y10を左上、X300,Y100を中心、半径100の円を太さ3pxの青い線を描画し別ウィンドウで表示
  • キー入力で表示用ウィンドウを破棄し終了
使った関数
  • np.ones : 要素の値が1の新規配列の生成
  • cv2.circle : 円描画
  • cv2.imshow : 画像を別ウィンドウに表示する
環境
  • windows10 home
  • Anaconda 3/ jupyter notebook 5.6.0
  • Python 3.7.0
  • OpenCV 4.0.0

コード

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の円が青い線で描画されます f:id:T_A_T:20190303150019p:plain

中を塗りつぶす場合は線の太さを-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() #ウインドウを閉じる

実行結果

f:id:T_A_T:20190303152631p:plain

以下のサイトを参考にさせていただきました

Pythonの文法メモ >> 【OpenCV】円を描画するcircle()関数

ブログランキングに参加しています

にほんブログ村 IT技術ブログへ
にほんブログ村