关于Opencv3在使用霍夫变换(houghlines)时一直出问题的解决

简单的学习了一段时间Opencv3.0,最近在做霍夫变换时经常出现问题,问题如下: 

image.png

image.png


自己也百度、谷歌了很长时间,发现说的都不是很好,也不能解决问题。最后自己一点点调试,一点点验证最后成功的解决了问题。


一、首先我的运行平台是win10+opencv3+vs2015+64位 

之前在进行程序调试,在链接器的输入附加依赖项一直输入opencv_ts300.lib和opencv_world300.lib, 

不论是在Dubeg模式还是在 Release模式下,程序都可以经行调试, 但在做霍夫变换时一直出问题,而且就是使用官方的源代码也是出现问题。 

后来想起了看过的文章中说过opencv_ts300.lib和opencv_world300.lib是针对Release模式的,而opencv_ts300d.lib和opencv_world300d.lib是针对debug模式的。


二、解决的方法


  1、把Debug改成Release程序就不在出错了。

   2、但是还想再Debug模式下运行程序,就只能用opencv_ts300d.lib和opencv_world300d.lib了。但是会说缺少msvcr120d.dll和msvcp120d.dll只要下载文件添加到C:\Windows\Systems32里面就可以。


msvcr120d.dll下载地址:https://cn.dll-files.com/msvcr120d.dll.html

msvcp120d.dll下载地址:https://cn.dll-files.com/msvcp120d.dll.html


#include "opencv2/highgui/highgui.hpp"
#include "opencv2/imgproc/imgproc.hpp"
#include <iostream>

using namespace cv;
using namespace std;

int main(void)
{
Mat src = imread("1.jpg", 0);
if (src.empty())
{
return -1;
}
Mat dst, cdst;
Canny(src, dst, 50, 200, 3);
cvtColor(dst, cdst, COLOR_GRAY2BGR);

vector<Vec2f> lines;
HoughLines(dst, lines, 1, CV_PI / 180, 200, 0, 0);

for (size_t i = 0; i < lines.size(); i++)
{
float rho = lines[i][0], theta = lines[i][1];
Point 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));
line(cdst, pt1, pt2, Scalar(0, 0, 255), 3, CV_AA);
}

        imshow("source", src);
imshow("detected lines", cdst);
waitKey();
return 0;
}

image.png

(原图)




本文出自勇哥的网站《少有人走的路》wwww.skcircle.com,转载请注明出处!讨论可扫码加群:

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

会员中心
搜索
«    2025年4月    »
123456
78910111213
14151617181920
21222324252627
282930
网站分类
标签列表
最新留言
    热门文章 | 热评文章 | 随机文章
文章归档
友情链接
  • 订阅本站的 RSS 2.0 新闻聚合
  • 扫描加本站机器视觉QQ群,验证答案为:halcon勇哥的机器视觉
  • 点击查阅微信群二维码
  • 扫描加勇哥的非标自动化群,验证答案:C#/C++/VB勇哥的非标自动化群
  • 扫描加站长微信:站长微信:abc496103864
  • 扫描加站长QQ:
  • 扫描赞赏本站:
  • 留言板:

Powered By Z-BlogPHP 1.7.2

Copyright Your skcircle.com Rights Reserved.

鄂ICP备18008319号


站长QQ:496103864 微信:abc496103864