###前提・実現したいこと
opencvを使用し矩形検出のプログラムを書いています。
エラーが直せず相談させてもらいます。
###発生している問題・エラーメッセージ
cvFindContoursでcontoursの中に座標などのデータを入れてるはずなのですが中身が入ってないようです。
for (int i = 0; i+1 <= contours->total; i++) {でブレイクポイントになってしまい、試しにdouble Area = fabs(cvContourArea(contours, CV_WHOLE_SEQ));を前に入れてみたところcontours内がNULLだと表示が出ました。
###該当のソースコード
#import "MonochromeFilter.h" #import "OpenCVUtil.h" #import <AudioToolbox/AudioServices.h> @implementation MonochromeFilter + (UIImage *)doFilter:(UIImage *)image { // CGImageからIplImageを作成 IplImage *srcImage = [OpenCVUtil IplImageFromUIImage:image]; IplImage *grayScaleImage = cvCreateImage(cvGetSize(srcImage), IPL_DEPTH_8U, 1); IplImage *dstImage = cvCreateImage(cvGetSize(srcImage), IPL_DEPTH_8U, 3); IplImage *bin_image = cvCreateImage(cvGetSize(srcImage), IPL_DEPTH_8U, 1); //cv::Mat aaa; CvSeq *contours; std::vector< cv::Point > approx; CvMemStorage *storage = cvCreateMemStorage (0); // グレースケール画像に変換 cvCvtColor(srcImage, grayScaleImage, CV_BGR2GRAY); //2値化 //cvThreshold(grayScaleImage,bin_image,160,255,CV_THRESH_BINARY); //std::vector< std::vector< cv::Point > > contours; // cv::Mat(aaa) = bin_image; cvCanny(grayScaleImage,bin_image, 50.0, 200.0, 3); //輪郭検出 cvFindContours (bin_image, storage, &contours, sizeof (CvContour), CV_RETR_TREE, CV_CHAIN_APPROX_SIMPLE); double Area = fabs(cvContourArea(contours, CV_WHOLE_SEQ));//NULLが出る場所 std::vector<cv::Point> points; for (int i = 0; i+1 <= contours->total; i++) {//ブレイク箇所 CvPoint *point = CV_GET_SEQ_ELEM(CvPoint, contours, i); i++; points.push_back(cv::Point(*point)); cv::approxPolyDP(points, approx, 50.0, true); double area = cv::contourArea(approx); if (approx.size() == 4 ){//&& 300.00> area > 1000.0){ AudioServicesPlaySystemSound(1000); } } // CGImage用にBGRに変換 cvCvtColor(bin_image, dstImage, CV_GRAY2BGR); // IplImageからCGImageを作成 UIImage *effectedImage = [OpenCVUtil UIImageFromIplImage:dstImage]; cvReleaseImage(&srcImage); cvReleaseImage(&grayScaleImage); cvReleaseImage(&dstImage); return effectedImage; } @end
###試したこと
多分なんですがcontoursをポインタで宣言している関係だと思うんですが原因がわかりません。
###補足情報(言語/FW/ツール等のバージョンなど)
Xcode7.3
opencv2.4.9