Pythonでいろいろやってみる

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

ランダムな位置に複数の円を描画する

やること
  • 横600px縦400pxの黒1色の画像を生成する
  • 黒画像の上に中心がx,y半径が10の水色の塗りつぶした円を描画。xは10~590の範囲のいずれか、yは0~390の範囲のいずれか。
  • 円を10個描画
  • 別ウィンドウで画像を表示
  • 画像をファイルに保存
  • キー入力で表示用ウィンドウを破棄し終了
使った関数
  • np.zeros : 要素の値が0の新規配列の生成
  • random.uniform : 指定した範囲の乱数を生成する
  • 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という名前でインポート
import random #randomをインポート

#400要素X600要素X3要素で全要素の値が0の3次元配列を生成しオブジェクトimgに代入
img=np.zeros((400, 600, 3), np.uint8) 

for i in range(10): #以下のインデント行を10回繰り返す
    x=int(random.uniform(10,590)) #10以上590以下の乱数(浮動小数点型)を発生し、intで整数に変換、xとする
    y=int(random.uniform(10,390)) #10以上390以下の乱数(浮動小数点型)を発生し、intで整数に変換、yとする 
    cv2.circle(img, (x, y), 10, (255, 255, 0), -1) #中心がx,y半径が10の水色の塗りつぶした円を描画

cv2.imshow("random_circle",img) #別ウィンドウを開き(ウィンドウ名 "random_circle")オブジェクトimgを表示
cv2.imwrite("random_circle.png",img) #画像をファイル名random_circle.pngで保存

cv2.waitKey(0) #キー入力待ち
cv2.destroyAllWindows() #ウインドウを閉じる

実行結果

f:id:T_A_T:20190304212708p:plain

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

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