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

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

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

OpenCV(オープンソースコンピュータービジョン)は、1999年にインテルが開発・公開したオープンソースのコンピュータビジョン向けのクロスプラットフォームライブラリです。

Python

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

Q&A

解決済

1回答

1091閲覧

ヒストグラムの逆投影法で得られたマスク処理後の画像のカラー部分に含まれる特徴点を特定したいです

koomint

総合スコア3

OpenCV

OpenCV(オープンソースコンピュータービジョン)は、1999年にインテルが開発・公開したオープンソースのコンピュータビジョン向けのクロスプラットフォームライブラリです。

Python

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

0グッド

0クリップ

投稿2022/01/02 11:16

##ヒストグラムの逆投影法で得られたマスク処理後の画像のカラー部分に含まれる特徴点を特定したいです.
OpenCVを用いています.
マスク処理後の画像と特徴点抽出後の画像を示します.
マスク処理後画像
画像に含まれる紫の四角は関係ありません.
特徴点抽出後画像
特徴点から伸びている線は,二つの画像の特徴点のマッチングした結果から特徴点同士で結んだものなのでお気になさらないでください.
マスク処理のコードを次に示します.

Python

1import cv2 2import numpy as np 3import matplotlib.pyplot as plt 4 5 6img = cv2.imread('../coyomi/ts1.png') 7cv2.imshow("image", img) 8 9# 参考で抜き出す領域の大きさ 10cx = 300 11cy = 325 12cw = 100 13cv2.rectangle(img, (cx, cy), (cx + cw, cy + cw), (255, 0, 0),thickness=3) 14curry_asset = img[cy:cy + cw, cx:cx + cw] 15cv2.imshow("2-1", img) 16cv2.imwrite("2-1.jpg", img) 17cv2.imshow("2-2.jpg", curry_asset) 18cv2.imwrite("2-2.jpg", curry_asset) 19 20# カラーヒストグラムの計算 21hsv = cv2.cvtColor(curry_asset,cv2.COLOR_BGR2HSV) 22hsvt = cv2.cvtColor(img,cv2.COLOR_BGR2HSV) 23# カラーヒストグラムの計算 24roihist = cv2.calcHist([hsv],[0, 1], None, [180, 256], [0, 180, 0, 256] ) 25cv2.imshow("3-1", hsv) 26cv2.imwrite("3-1.jpg", hsv) 27cv2.imshow("3-2", hsvt) 28cv2.imwrite("3-2.jpg", hsvt) 29# ヒストグラムを正規化し逆投影を適用 30cv2.normalize(roihist,roihist,0,255,cv2.NORM_MINMAX) 31dst = cv2.calcBackProject([hsvt],[0,1],roihist,[0,180,0,256],1) 32cv2.imshow("4", dst) 33cv2.imwrite("4.jpg", dst) 34# モルフォロジー変換 35disc = cv2.getStructuringElement(cv2.MORPH_ELLIPSE,(10,10)) 36cv2.filter2D(dst,-1,disc,dst) 37cv2.imshow("5", dst) 38cv2.imwrite("5.jpg", dst) 39# 閾値とマスク処理 40ret, thresh = cv2.threshold(dst, 255, 255, 255) 41thresh = cv2.merge((thresh, thresh, thresh)) 42res = cv2.bitwise_and(img, thresh) 43cv2.imshow("6", res) 44cv2.imwrite("6.jpg", res) 45

抽出した特徴点の座標はtxtファイルに書き込んであるのでそれを利用したいです.
具体的に実現したいことは,マスク処理で大体の地面領域が抽出できたので,それに含まれる地面領域の特徴点だけを取り出すことです.

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

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

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

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

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

guest

回答1

0

自己解決

全ての特徴点に対して,その特徴点の座標をマスク画像の位置に当てはめてそのRGBから判断することにしました.

投稿2022/01/03 02:08

koomint

総合スコア3

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.46%

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

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

質問する

関連した質問