• Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 776
  • Last Modified:

OpenCV, c++ problem

Hello experts!

I am C++ and OpenCV newbie.

Please have a look at the attached image.

This is my code:

int _tmain(int argc, _TCHAR* argv[])
{
              IplImage* src;

      src=cvLoadImage("pic1.bmp");
      
      IplImage* dst = cvCreateImage(cvGetSize(src), 8, 1);
      IplImage* color_dst = cvCreateImage(cvGetSize(src), 8, 3);
      CvMemStorage* storage = cvCreateMemStorage(0);
      CvSeq* lines = 0;

      int i;
      cvCanny(src, dst, 50, 200, 3); //<- program crashes inside this method

      cvCvtColor(dst, color_dst, CV_GRAY2BGR);

      lines = cvHoughLines2(dst,      storage, CV_HOUGH_PROBABILISTIC, 1, CV_PI/180, 80, 30, 10);

      for( i = 0; i < lines->total; i++)
      {
            CvPoint* line = (CvPoint*)cvGetSeqElem(lines,i);
            cvLine(color_dst, line[0], line[1], CV_RGB(255,0,0), 3, 8);

      }
      
      cvNamedWindow("Source", 1);
      cvShowImage("Source", src);
      cvNamedWindow("Hough", 1);
      cvShowImage("Hough", color_dst);

      cvWaitKey(0);

}

Any ideas? For me it looks like program crashed inside dll library, maybe dll contains bug?

Thank you

panJames
cvroblem.gif
0
panJames
Asked:
panJames
  • 2
  • 2
  • 2
1 Solution
 
ikeworkCommented:
Just press the "Break" button in the dialog that you posted, then the debugger will jump to the code-line where the crash occured.
0
 
ikeworkCommented:
Most likely "pic1.bmp" cant be found.
0
 
jkrCommented:
Well, it's not a crash, it's a diagnotic exception raised by OpenCV telling you that there's something wrong with the parameters you are passing to 'cvCanny()' (or 'cvSobel()' respectively, which is called by that function) - here it is that the number of color channels does not seem to match both the source and destination image ('src.channels() == dst.channels()' in your console window).
0
VIDEO: THE CONCERTO CLOUD FOR HEALTHCARE

Modern healthcare requires a modern cloud. View this brief video to understand how the Concerto Cloud for Healthcare can help your organization.

 
panJamesAuthor Commented:
ikework: -> it can find the image

jkr:it may be the reason. I will try different images.

panJames
0
 
jkrCommented:
Try specifying compatible parameters with 'cvCreateImage()'.
0
 
panJamesAuthor Commented:
In "Learning OpenCV" I found that I need 8bit image. And according to IrfanView I actually use such file (8 bitsperpixel).

Still I get errors as you can see on attached image.

Any ideas?

panJames






cv.gif
0

Featured Post

Prep for the ITIL® Foundation Certification Exam

December’s Course of the Month is now available! Enroll to learn ITIL® Foundation best practices for delivering IT services effectively and efficiently.

  • 2
  • 2
  • 2
Tackle projects and never again get stuck behind a technical roadblock.
Join Now