前提・実現したいこと
【python】
canny edge detectionにより得た,輪郭内の平均色を取得したいです。
現在、長方形で切り取った部分の平均色を取得する方法しか分からない状況です。
・下記のコードが、任意の座標中から平均色を取得するコードです。
対象画像読み込み
img = cv2.imread("a.png",cv2.IMREAD_COLOR)
boxFromX = 〇〇 #対象範囲開始位置 X座標
boxFromY = 〇〇 #対象範囲開始位置 Y座標
boxToX = 〇〇 #対象範囲終了位置 X座標
boxToY = 〇〇 #対象範囲終了位置 Y座標
y:y+h, x:x+w の順で設定
imgBox = img[boxFromY: boxToY, boxFromX: boxToX]
b = imgBox.T[0].flatten().mean()
g = imgBox.T[1].flatten().mean()
r = imgBox.T[2].flatten().mean()
print("B: %.2f" % (b))
print("G: %.2f" % (g))
print("R: %.2f" % (r))
imgBoxHsv = cv2.cvtColor(imgBox,cv2.COLOR_BGR2HSV)
h = imgBoxHsv.T[0].flatten().mean()
s = imgBoxHsv.T[1].flatten().mean()
v = imgBoxHsv.T[2].flatten().mean()
print("Hue: %.2f" % (h))
print("Salute: %.2f" % (s))
print("Value: %.2f" % (v))
・下記が、輪郭の座標です。
[ 947 1461 946 1462 … 949 1461 948 1461 ]
ご教示いただけますと、幸いです。
よろしくお願いします。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2022/01/06 11:40