いやあ、えっちな画像を試験台にすると捗りますね!!!!!!!!
・インストール
どうもインストール方法調べると、バージョンが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を用いた特徴点対応付け/