gpt4 book ai didi

c++ - 如何解决opencv和c++中霍夫变换的错误

转载 作者:太空宇宙 更新时间:2023-11-03 23:03:11 25 4
gpt4 key购买 nike

#include <cv.h>
#include <highgui.h>
#include <math.h>

int main(int argc, char** argv)
{
IplImage* src;
if( argc == 2 && (src=cvLoadImage("qqqq.jpg", 0))!= 0)
{
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 );
cvCvtColor( dst, color_dst, CV_GRAY2BGR );
#if 1
lines = cvHoughLines2( dst,
storage,
CV_HOUGH_STANDARD,
1,
CV_PI/180,
100,
0,
0 );

for( i = 0; i < MIN(lines->total,100); i++ )
{
float* line = (float*)cvGetSeqElem(lines,i);
float rho = line[0];
float theta = line[1];
CvPoint pt1, pt2;
double a = cos(theta), b = sin(theta);
double x0 = a*rho, y0 = b*rho;
pt1.x = cvRound(x0 + 1000*(-b));
pt1.y = cvRound(y0 + 1000*(a));
pt2.x = cvRound(x0 - 1000*(-b));
pt2.y = cvRound(y0 - 1000*(a));
cvLine( color_dst, pt1, pt2, CV_RGB(255,0,0), 3, 8 );
}
#else
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 );
}
#endif
cvNamedWindow( "Source", 1 );
cvShowImage( "Source", src );

cvNamedWindow( "Hough", 1 );
cvShowImage( "Hough", color_dst );

cvWaitKey(0);
}

}

我在 opencv 中使用此代码进行“霍夫变换”来检测图像中的对象。并且程序运行没有任何错误。但结果只是一个控制台窗口出现得很快又消失得很快。我应该为此做什么。

最佳答案

你的逻辑很糟糕:

  • 第一:如果 argc 大于或小于 2,您的主代码将不会运行,也不会通知您。
  • 第二:如果由于任何原因 cvLoadImage() 失败,您也不会收到通知。

我怀疑正在发生以下两件事之一:您没有使用正确数量的参数调用您的程序,或者 cvLoadImage() 失败(无法找到文件或文件类型不支持)。

我建议您添加适当的调试(printf 调用)以查看实际情况。

编辑:

一些注意事项:

  • 如果您的图像以 "qqqq.jpg" 的形式加载,并且您是从 Visual Studio 中运行程序,则需要将图像放在与源代码文件相同的文件夹中(而不是在您的 .exe 所在的文件夹中);
  • 如果您使用的是 Windows 并尝试使用完整路径加载图像,请不要忘记对斜杠进行转义:C:\\folder\\qqqq.jpg
  • 仅供引用,argc == 2 表示您正在使用以下格式从命令行运行您的应用程序:app.exe param1

关于c++ - 如何解决opencv和c++中霍夫变换的错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10864187/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com