オーブフィーチャポイント抽出の実行中にエラーが報告されました:OpenCVエラー:drawKeypointsでアサーションに失敗しました(!outImage.empty())

ORBポイントフィーチャ抽出を実行する場合:エラーが報告されます

OpenCVエラー:drawKeypoints、ファイル/home/ssf/Downloads/opencv-3.1.0/modules/features2d/src/draw.cppでアサーションが失敗しました(!outImage.empty())、113行目
は 'のインスタンスをスローした後に呼び出されましたcv :: Exception'what
():/ home / Downloads / opencv-3.1.0 / modules / features2d / src / draw.cpp:113:エラー:(-215)!outImage.empty()in function drawKeypoints

解決策:画像が間違った場所に配置され、実行可能ファイルと同じフォルダーに配置されます: ./ fastFeatures 

対応するプログラムコードを調整し、画像ファイルの場所を再保存します。

/ * imwrite( "../../ result / out00.jpg" keyPointImage); * /;ここで、.. / ..は上位の2レベルのディレクトリに戻ります。

調整コードは次のとおりです。imwrite( "out00.png"、keyPointImage);

マットsrcImage = imread( "img1.png");

 

以下は、プログラムコードのデバッグプロセスで使用されるクエリopencv関数drawKeypointsのパラメータ定義です

opencvは、特徴点をすばやく描画するための関数drawKeypointsを提供します。

1つのパラメータ画像:元の画像。3チャネルまたは単一チャネルの画像にすることができます。

2番目のパラメーターkeypoints:特徴点ベクトル。ベクトル内の各要素はKeyPointオブジェクトであり、特徴点のさまざまな属性情報が含まれています。

3番目のパラメーターoutImage:特徴点によって描画されたキャンバス画像。元の画像にすることができます。

4番目のパラメーターcolor:描画された特徴点の色情報。デフォルトで描画されるのはランダムな色です。

5番目のパラメータフラグ:特徴点の描画モード実際には、特徴点を設定する情報を描画する必要があり、描画する必要がない情報には、次のモードを選択できます。

デフォルト:画像上に小さな点として表示される特徴点の座標点のみを描画し、各小さな点の中心座標は特徴点の座標です。

DRAW_OVER_OUTIMG:この関数は出力イメージを作成しませんが、出力イメージ変数スペースに直接描画します。出力イメージ変数自体を初期化する必要があります。サイズとタイプの両方がすでに初期化された変数です
。NOT_DRAW_SINGLE_POINTS:シングルポイントの特徴点は初期化されていません。ドロー

DRAW_RICH_KEYPOINTS:特徴点を描画する場合、方向のある円が描画されます。この方法では、画像の座標、サイズ、方向が同時に表示されます。これは、特徴を表示するのに最適な描画方法です。

drawKeypoints( srcImage、detectKeyPoint、keyPointImage、Scalar :: all(-1)、DrawMatchesFlags :: DEFAULT);

fangzai bin wenjianjia yu kezhixing wenjian yiqi

 ./fastFeatures

さらに、プログラムの実行中に、CmakeLists.txtのopencvのバージョン番号がマシンのバージョン番号と同じであるかどうかを確認できます。混乱を避けるためにバージョン番号を指定できます。

CmakeLists.txt追加:

find_package(OpenCV 3.3.1必須)

 

 

 

おすすめ

転載: blog.csdn.net/neptune4751/article/details/108987876
おすすめ