web-dev-qa-db-ja.com

python opencvで指定された座標を使用して画像に点を描く方法は?

1つの画像と1つの座標(X、Y)があります。この座標で画像に点を描く方法。 Python OpenCVを使用したい。

12
prosenjit

私はPython OpenCVへのバインディングも学習しています。ここに1つの方法があります:

#!/usr/local/bin/python3
import cv2
import numpy as np

w=40
h=20
# Make empty black image
image=np.zeros((h,w,3),np.uint8)

# Fill left half with yellow
image[:,0:int(w/2)]=(0,255,255)

# Fill right half with blue
image[:,int(w/2):w]=(255,0,0)

# Create a named colour
red = [0,0,255]

# Change one pixel
image[10,5]=red

# Save
cv2.imwrite("result.png",image)

これが結果です-拡大して見ることができます。

enter image description here


これは非常に簡潔ですが、あまり面白くない答えです。

#!/usr/local/bin/python3
import cv2
import numpy as np

# Make empty black image
image=np.zeros((20,40,3),np.uint8)

# Make one pixel red
image[10,5]=[0,0,255]

# Save
cv2.imwrite("result.png",image)

enter image description here

12
Mark Setchell

Cv2.circle()関数opencvモジュールを使用できます:

image = cv.circle(image, centerOfCircle, radius, color, thickness)

単一の点をプロットする場合は半径を0に、塗りつぶされた円の場合は厚さを負の数にしてください

import cv2
image = cv2.circle(image, (x,y), radius = 0, (0, 0, 255), -1)
0