数字图像处理---边缘检测算法复现(ED、EDPF、CannySR、CannySRPF)

目录

    • 前言
    • (一)无法查找或打开 PDB 文件。
    • (二)自带的测试图像完美运行,自己的图片运行报错

前言

本篇主要记录一下在进行四种边缘检测算法(ED、EDPF、CannySR、CannySRPF)复现过程中遇到的调试问题,论文、程序、版本如下:这里主要记录调试错误,具体的论文理解及程序将在整理后上传。
(一) 论文地址:
https://www.sciencedirect.com/science/article/pii/S1047320312000831
https://sci-hub.tw/10.1016/j.jvcir.2012.05.004
http://cvrs.whu.edu.cn/projects/cannyLines/

(二)程序地址:
https://github.com/mtamburrano/LBD_Descriptor

(三)版本信息:
OpenCV 4.2.0 ; Visual Studio 2017

(一)无法查找或打开 PDB 文件。

这里用到的是大佬写于2015年的程序,数字图像处理---边缘检测算法复现(ED、EDPF、CannySR、CannySRPF)_第1张图片
程序编译完成后,遇到了一个VS的常见问题,

“EDTest.exe”(Win32): 已加载“C:\Windows\SysWOW64\kernel.appcore.dll”。无法查找或打开 PDB 文件。
数字图像处理---边缘检测算法复现(ED、EDPF、CannySR、CannySRPF)_第2张图片
这里尝试了网上的方法:
(1)“启用源服务器支持”
(2)“Microsoft符号服务器”
这里一定要注意修改符号缓存目录!数字图像处理---边缘检测算法复现(ED、EDPF、CannySR、CannySRPF)_第3张图片
然后,问题还是没有解决,毕竟这是五年前的版本,我又尝试了VS2010,VS2012,OpenCV2.0,问题依然没有解决。。。于是去问了一下大佬,
数字图像处理---边缘检测算法复现(ED、EDPF、CannySR、CannySRPF)_第4张图片
Emmmmmmm,大佬的回答就是这么简单清楚明了,确实,程序没有报错,就不用管它,如果程序不能运行出想要的结果,一定要从程序本身出发盘逻辑,而不是纠结于这些问题。

(二)自带的测试图像完美运行,自己的图片运行报错

具体问题为:PGM格式图片打开错误;jpg转换为PGM格式问题。
在大佬的Github账号中,下载了他的仿真图像,运行结果如下:
数字图像处理---边缘检测算法复现(ED、EDPF、CannySR、CannySRPF)_第5张图片
但在我使用自己的图片作为输入时,报错了!
显示如下:
Error reading the image data in ReadImagePGM().
数字图像处理---边缘检测算法复现(ED、EDPF、CannySR、CannySRPF)_第6张图片
很显然,这里是PGM格式图片打开错误。由于输入图像格式是jpg,所以使用matlab对图像进行了转换,程序如下:

    img=imread(inputImage);
    % 设置输出文件名  
    imageName='A.pgm';
    imwrite(img,imageName,'pgm');

于是尝试如下方法:
(1)更改图片分辨率,使其与大佬自带测试图像相同
(2)将jpg格式图片分别转换为PGM的P2和P5格式
(3)使用在线PS和其他在线图片格式转换网站对图片进行转换

Emmmmmmm,都失败了。
具体解决方法:
(1)使用记事本(我用的是Notepad++)打开大佬给的测试图片,如下:
数字图像处理---边缘检测算法复现(ED、EDPF、CannySR、CannySRPF)_第7张图片
千万千万不要忽略大佬给的每一个注释!!
第2行:Created by IrfanView
没错,IrfanView是一款比较好用的图片读取、转换软件。
(2)使用 IrfanView将jpg格式图片转换为PGM格式。
代入程序中,完美!运行结果如下:
数字图像处理---边缘检测算法复现(ED、EDPF、CannySR、CannySRPF)_第8张图片
显示边缘检测个数与算法运行时间为:
数字图像处理---边缘检测算法复现(ED、EDPF、CannySR、CannySRPF)_第9张图片
*
*
“外宽而内忌,多谋而少断,志大而智小,色厉而胆薄” 加油!

你可能感兴趣的:(小技巧,边缘检测,visual,studio)