cv::Mat 型で作業しているときに画像にテキストを重ねる方法 質問する

cv::Mat 型で作業しているときに画像にテキストを重ねる方法 質問する

私は opencv 2.1 を使用しています。私のコードには、次のように初期化された Mat オブジェクトとして保存された画像がいくつかあります。

Mat img1 = imread("img/stuff.pgm", CV_LOAD_IMAGE_GRAYSCALE);

マトリックス操作が完了したら、imshow() を使用して適切に表示できます。次に、何が起こったかを説明するテキストを画像に追加します。ドキュメントを見ると、cvPutText()必要な関数のようです。しかし、次のようなことを試した場合:

cvPutText(result, "Differencing the two images.", cvPoint(30,30), &font, GREEN);

次のコンパイル エラーが発生します。error: cannot convert ‘cv::Mat’ to ‘CvArr*’ for argument ‘1’ to ‘void cvPutText(CvArr*, const char*, CvPoint, const CvFont*, CvScalar)’

この画像を表示するときにテキストを追加できるようにするには、何をする必要がありますか?

ベストアンサー1

私は間違った場所を見ていました。新しいところで答えを見つけましたcpp の OpenCV ドキュメントcv::Mat オブジェクトを受け入れる putText() という新しい関数があります。そこで、次の行を試してみたところ、うまくいきました。

putText(result, "Differencing the two images.", cvPoint(30,30), 
    FONT_HERSHEY_COMPLEX_SMALL, 0.8, cvScalar(200,200,250), 1, CV_AA);

これが誰かの役に立つことを願います。

おすすめ記事