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

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

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

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

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

Python

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

Q&A

0回答

1999閲覧

ORBで特徴点を抽出したいのですが、同じエラーコードに直面しています。

stylenanda

総合スコア10

OpenCV

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

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

Python

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

0グッド

0クリップ

投稿2019/10/27 04:05

編集2019/10/27 05:17

リンク内容### OpenCV(python)で物体認識 特徴点抽出 ORB

opencv4.1.1
python 3.5

を利用中です。
特徴点をORBで抽出し、比較したいです

発生している問題・エラーメッセージ

matches = bf.knnMatch(des1,des2, k=2) Assertion failed) type == src2.type() && src1.cols == src2.cols && (type == CV_32F || type == CV_8U) in function 'cv::batchDistance'

該当のソースコード

import numpy as np import cv2 img1 = cv2.imread('dollar.jpg',0) img2 = cv2.imread('dollar1.jpg',0) #特徴抽出機の生成 detector = cv2.ORB_create() #kpは特徴的な点の位置 destは特徴を現すベクトル kp1, des1 = detector.detectAndCompute(img1, None) kp2, des2 = detector.detectAndCompute(img2, None) #特徴点の比較機 bf = cv2.BFMatcher() matches = bf.knnMatch(des1,des2, k=2) #割合試験を適用  good = [] match_param = 0.6 for m,n in matches: if m.distance < match_param*n.distance: good.append([m]) #cv2.drawMatchesKnnは適合している点を結ぶ画像を生成する img3 = cv2.drawMatchesKnn(img1,kp1,img2,kp2,good, None,flags=2) cv2.imwrite("shift_result.png", img3)

試したこと

https://www.tech-tech.xyz/sift-surf-akaze.html

こちらのサイトを主に参考にしました。
プログラミングも同じです。
画像も同じ画像を使用しています。

補足情報(FW/ツールのバージョンなど)

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

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

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

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

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

tiitoi

2019/10/27 04:16

画像が読み込めていることは確認していますか?(img1 と img2 が None でないかどうか)
stylenanda

2019/10/27 04:19

画像を一枚で読み込み、で特徴点を抽出し、それを表示することはできているのですが、二枚の画像をマッチングするとこのエラーが出てきます。
tiitoi

2019/10/27 04:22

img1 = cv2.imread('dollar.jpg',0) img2 = cv2.imread('dollar1.jpg',0) print(img1, img2) としてどちらも None でないことを確認してください。
stylenanda

2019/10/27 04:36

[[255 255 255 ... 255 255 255] [255 255 255 ... 255 255 255] [255 255 255 ... 255 255 255] ... [255 255 255 ... 255 255 255] [255 255 255 ... 255 255 255] [255 255 255 ... 255 255 255]] None このような結果が出たという事は、img2はNoneであるが、img1はNoneでないということでしょうか?? 初心者で申し訳ありません。
tiitoi

2019/10/27 04:48

img2 が None になったということは dollar1.jpg が読み込めていません。 画像パスを確認してください (dollar1.jpg が dollar.jpg と同じフォルダにあるかどうか)
stylenanda

2019/10/27 05:15

保存場所が間違っておりました。同じフォルダ内に移動したところ エラーは検出されませんでしたが、実行結果では二枚の画像が表示されるだけで特徴点が検出できませんでした 編集して写真を追加します。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問