私は aruco ライブラリでメーカーを作成するための簡単なコードを書きました。
#include <opencv2/highgui/highgui.hpp>
#include <opencv2/aruco.hpp>
using namespace cv;
int main(int argc, char *argv[]) {
int dictionaryId = 100;
int markerId = 45;
int borderBits = 2;
int markerSize = 2450;
bool showImage = true;
cv::Ptr<aruco::Dictionary> dictionary = aruco::getPredefinedDictionary(aruco::PREDEFINED_DICTIONARY_NAME(dictionaryId));
Mat markerImg;
aruco::drawMarker(dictionary, markerId, markerSize, markerImg, borderBits);
if(showImage) {
imshow("marker", markerImg);
waitKey(0);
}
imwrite("out.png", markerImg);
return 0;
}
コマンドを使用してコンパイルして実行しようとすると
g++ -I/usr/local/include/opencv -I/usr/include/opencv2 -L/usr/local/lib/ -g -o binary create_marker.cpp -lopencv_core -lopencv_imgproc -lopencv_highgui -lopencv_ml -lopencv_video -lopencv_features2d -lopencv_calib3d -lopencv_objdetect -lopencv_contrib -lopencv_legacy -lopencv_stitching -lopencv_aruco
このサイトのソリューションの1つに示されているように、このエラーが発生します
g++ -I/usr/local/include/opencv -I/usr/include/opencv2 -L/usr/local/lib/ -g -o binary create_marker.cpp -lopencv_core -lopencv_imgproc -lopencv_highgui -lopencv_ml -lopencv_video -lopencv_features2d -lopencv_calib3d -lopencv_objdetect -lopencv_contrib -lopencv_legacy -lopencv_stitching -lopencv_aruco /usr/bin/ld: 見つかりません -lopencv_aruco collect2: エラー: ld が 1 の終了ステータスを返しました
私はopencvが初めてなので、誰かが私が間違っていることを指摘してもらえますか ありがとう!!