質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

Q&A

解決済

1回答

4303閲覧

輪郭内の平均色を取得したいです。

bakl

総合スコア2

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

0グッド

0クリップ

投稿2022/01/06 06:46

前提・実現したいこと

【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 ]

ご教示いただけますと、幸いです。
よろしくお願いします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

Get the average color inside a contour with Open CVに書かれている方法がよいでしょう。

python

1mask = np.zeros(frame.shape, np.uint8) 2cv2.drawContours(mask, c, -1, 255, -1) 3mean = cv.mean(frame, mask=mask) 4

ここに、frameが元画像、cが輪郭です。

投稿2022/01/06 07:27

ppaul

総合スコア24670

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

bakl

2022/01/06 11:40

お教えいただいたコードで少しエラーにはなったのですが、エラーの解決法を調べ、微修正することで解決ができました! 当方、独学の初心者で数日調べても解決方法が分からず、とても困っていたため、大変助かりました! 本当に、ありがとうございました!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問