2012/07/29

OpenCV

,
OpenCV 2.4、はじめました。冷やしOpenCV2.4。
いやあ、えっちな画像を試験台にすると捗りますね!!!!!!!!

・インストール
どうもインストール方法調べると、バージョンが2.0くらいまではインストーラーがあったらしく、インストール→CMakeだったらしいですね。しかし、現行の2.4だと、解凍してそれでいいという状況だそうで。
ここが参考になりました: OpenCV2.4の入手、ダウンロード、インストール、環境設定 | イメージングソリューション http://imagingsolution.net/program/opencv/opencv2-4-dynamic-downlaod-install/

Self-Extractingって一時展開先だと思ってて3回入れなおしました(真顔)
opencv/build/x86/vc9/libと、opencv/build/x86/vc9/staticlibってあるけど違いがわかりませんね~~~~~~


#pragma comment(lib, "...")とかでopencvの静的ライブラリを読み込みます。
コード簡単なのでいいですね。
参考:http://opencv.jp/cookbook/opencv_img.html#
#include < opencv2/opencv.hpp >

#ifdef _DEBUG
#pragma comment(lib, "opencv_core242d.lib")
#pragma comment(lib, "opencv_imgproc242d.lib")
#pragma comment(lib, "opencv_highgui242d.lib")
#pragma comment(lib, "opencv_objdetect242d.lib")
#else 
#pragma comment(lib, "opencv_core240.lib")
#pragma comment(lib, "opencv_imgproc240.lib")
#pragma comment(lib, "opencv_highgui240.lib")
#pragma comment(lib, "opencv_objdetect240.lib")
#endif

int main()
{
 cv::Mat img1 = cv::imread("******.jpg", CV_LOAD_IMAGE_GRAYSCALE);
 if(img1.empty())
  return -1;

 //閾値
 //cv::Mat tozero_img;
 //cv::threshold(img1, tozero_img, 0, 255, cv::THRESH_TOZERO | cv::THRESH_OTSU);

 //エッジ画像(Canny)
 cv::Mat canny_img;
 cv::Canny(img1, canny_img, 50, 200);

 cv::namedWindow("image");
 cv::imshow("image", canny_img);
 cv::waitKey(0);

 return 0;
}

Q. Assertion failed (src.type() == CV_8UC1 ) in unknown function,とか出ます!!!
A. 閾値とかエッジ画像の時は、cv::imreadの第2引数をCV_LOAD_IMAGE_GRAYSCALE( == 0)にしてグレースケールとして画像を読み込まないといけないらしい( http://stackoverflow.com/questions/7680816/opencv-error-when-using-function-cvgoodfeaturestotrack )

参考: OpenCVを用いた特徴点対応付け ≪ Miyabiarts.net http://miyabiarts.wordpress.com/2011/01/21/opencvを用いた特徴点対応付け/

0 コメント to “OpenCV”

コメントを投稿