OpenCVでのイメージ描画
# -*- coding: utf-8 -*
import numpy as np
import cv2
import cv2
img = np.zeros((400, 400, 3), np.uint8) # 高さ、幅、チャンネル数
img[:,:] = [255, 0, 0] # 全てのピクセルに対して実行。BGR表現?で青
cv2.imwrite('img/blue.jpg', img)
cv2.imshow('blue', img)
img[:,:] = [255, 0, 0] # 全てのピクセルに対して実行。BGR表現?で青
cv2.imwrite('img/blue.jpg', img)
cv2.imshow('blue', img)
img[:,:] = [0, 255, 0]
cv2.imwrite('img/green.jpg', img)
cv2.imshow('green', img)
cv2.imwrite('img/green.jpg', img)
cv2.imshow('green', img)
img[:,:] = [0, 0, 255]
cv2.imwrite('img/red.jpg', img)
cv2.imshow('red', img)
cv2.imwrite('img/red.jpg', img)
cv2.imshow('red', img)
cv2.waitKey(0)
cv2.destroyAllWindows()
cv2.destroyAllWindows()
import cv2
import numpy as np
import numpy as np
img = np.full((210, 425, 3), 128, dtype=np.uint8) # height, width, chennels = color_img.shape
cv2.line(img, (50, 10), (125, 60), (255, 0, 0)) # 前2つは座標、3番目()は色、lineは線
cv2.line(img, (50, 60), (125, 10), (0, 255, 255), thickness=4, lineType=cv2.LINE_AA) # thicknessで線の太さを指定
cv2.arrowedLine(img, (50, 80), (125, 130), (0, 255, 0), thickness=4) # arrowedLineは矢印
cv2.arrowedLine(img, (50, 150), (125, 80), (255, 0, 255), tipLength=0.3)
cv2.arrowedLine(img, (50, 150), (125, 80), (255, 0, 255), tipLength=0.3)
cv2.rectangle(img, (50, 150), (125, 200), (255, 255, 0)) # rectangleは長方形
cv2.circle(img, (190, 35), 15, (255, 255, 255), thickness=-1) # cercleは円
cv2.circle(img, (240, 35), 20, (0, 0, 0), thickness=3, lineType=cv2.LINE_AA) # LINE_AAで線を描画
cv2.circle(img, (240, 35), 20, (0, 0, 0), thickness=3, lineType=cv2.LINE_AA) # LINE_AAで線を描画
cv2.ellipse(img, ((190, 105), (20, 50), 0), (255, 255, 255)) # ellipseは楕円
cv2.ellipse(img, ((240, 105), (20, 50), 30), (0, 0, 0), thickness=-1) # thicknessで線であることを表す
cv2.ellipse(img, ((240, 105), (20, 50), 30), (0, 0, 0), thickness=-1) # thicknessで線であることを表す
cv2.ellipse(img, (190, 175), (10, 25), 0, 0, 270, (255, 255, 255)) # 270で360に達していない途切れた楕円
cv2.ellipse(img, (240, 175), (10, 25), 30, 0, 270, (0, 0, 0), thickness=-1) # thickness=-1で塗りつぶし
cv2.ellipse(img, (240, 175), (10, 25), 30, 0, 270, (0, 0, 0), thickness=-1) # thickness=-1で塗りつぶし
cv2.drawMarker(img, (300, 20), (255, 0, 0)) # +
cv2.drawMarker(img, (337, 20), (0, 255, 0), markerType=cv2.MARKER_TILTED_CROSS, markerSize=15) # X
cv2.drawMarker(img, (375, 20), (0, 0, 255), markerType=cv2.MARKER_STAR, markerSize=10) # 星形
cv2.drawMarker(img, (337, 20), (0, 255, 0), markerType=cv2.MARKER_TILTED_CROSS, markerSize=15) # X
cv2.drawMarker(img, (375, 20), (0, 0, 255), markerType=cv2.MARKER_STAR, markerSize=10) # 星形
cv2.drawMarker(img, (300, 50), (0, 255, 255), markerType=cv2.MARKER_DIAMOND) # ダイアモンド形
cv2.drawMarker(img, (337, 50), (255, 0, 255), markerType=cv2.MARKER_SQUARE, markerSize=15) # 四角形
cv2.drawMarker(img, (375, 50), (255, 255, 0), markerType=cv2.MARKER_TRIANGLE_UP, markerSize=10) # 三角形
cv2.drawMarker(img, (337, 50), (255, 0, 255), markerType=cv2.MARKER_SQUARE, markerSize=15) # 四角形
cv2.drawMarker(img, (375, 50), (255, 255, 0), markerType=cv2.MARKER_TRIANGLE_UP, markerSize=10) # 三角形
pts = np.array(((300, 80), (300, 150), (335, 150)))
cv2.polylines(img, [pts], True, (255, 255, 255), thickness=2) # ploylinesは折れ線
cv2.polylines(img, [pts], True, (255, 255, 255), thickness=2) # ploylinesは折れ線
pts = np.array(((335, 80), (375, 80), (375, 150)))
cv2.fillPoly(img, [pts], (0, 0, 0)) # fillPloyは多角形
cv2.fillPoly(img, [pts], (0, 0, 0)) # fillPloyは多角形
cv2.putText(img, 'hellow', (300, 170), cv2.FONT_HERSHEY_SIMPLEX, 1.0, (255, 255, 255), thickness=2) # putTextは文字列
cv2.putText(img, 'hellow', (300, 195), cv2.FONT_HERSHEY_COMPLEX, 0.8, (0, 0, 0), lineType=cv2.LINE_AA)
cv2.putText(img, 'hellow', (300, 195), cv2.FONT_HERSHEY_COMPLEX, 0.8, (0, 0, 0), lineType=cv2.LINE_AA)
cv2.imwrite('img/draw_imgs.png', img)
cv2.imshow('imgs', img)
cv2.imshow('imgs', img)
cv2.waitKey(0)
cv2.destroyAllWindows()
cv2.destroyAllWindows()

