明德扬肖老师 发表于 2020-8-12 10:53:07

01_边缘检测系列案例交流【汇总帖】

一、边缘检测工程答疑【汇总帖】

【问题1】点拨开发板,下载工程检测工程后,没有反应。
答:注意:下载后,需要按下矩阵键盘的按键0(即左上角第一个按键),才能显示!!!


【问题2】点拨开发板可以显示摄像头拍摄过来的图片吗?
答:由于点拨开发板的资源不足,所以无法显示摄像头的图片,如要显示,建议购买MP801开发板。

【问题3】PCLK的时钟频率问题
答:FPGA提供XCLK给摄像头,摄像头利用XCLK产生PCLK。所以PCLK来源于XCLK,所以XCLK是多少,PCLK就是多少。
      也就是说PCLK和XCLK频率大小一样,只是说可能不同相


【问题4】是否不使用PLL,而是用PCLK来作为采集模块的时钟?
答:PCLK经过插件连到FPGA,这其中可能会不稳定。为解决此问题,将PCLK连到PLL,产生一个同频同相的时钟,使用这个时钟作为采集模块的工作时钟。
      这样,即使PCLK缺少或者不稳定,但产生的时钟也会保持稳定。


【问题5】摄像头寄存器配置模块中,配置的是04对应RGB,但是数据手册中RGB应该是01,这是为什么?
答:这里的Bayer RAW本质上是RAW RGB格式,也是RGB格式。
       RAW RGB:在摄像头里没有经过任何处理的数据。
       RGB:在摄像头里经过了ISP等算法处理的数据。
如果想要最原始的数据,就使用RAW格式;如果要摄像头先美化一下,就使用RGB格式。想要哪种格式,取决于您的需求。


【问题6】边缘检测寄存器是怎么样配置的呢?

答:边缘检测中,ov7670_cfg模块和sccb模块,就是用来配置的,可以参考

【问题7】现有vga的像素是需要将其移植到的开发板中是不是可以直接将 <= {,}直接将低位补0?
答:像素变换的时候,要注意数据代表的含义。当是RGB格式并且VGA像素是8位,大概率是R323的格式。即data是R,data是G,data是B。当要扩展位宽为10位的时候,就要考虑10位中,哪些位是表示R、G、B的,然后在相应的位置补0。假设分别是433来表示RGB,那么应该是这样拼接:{data,1'b0,data,1'b0,data}。上面是举例子,请按此种思想来变换位宽。

【问题8】RGB565转成8位的灰度值,怎么转换成16位直接让vga输出?让vga输出这个8位的dout灰度值
答:三种颜色的低位补0即可。

【问题9】边缘检测专题课中,高斯滤波模块的代码解析中,移位寄存器有两个抽头,而提供的工程中有三个抽头
答:1、提供的答案工程是根据每个模块的功能说明来设计的,在高斯滤波模块功能说明中,提到最终的图像发生偏移,这个偏移就是使用3个抽头造成,使用3个抽头的话,对于矩阵的构成更容易理解,而且发生的偏移,在实际现象中是看不出来的,因此便一直保留。
2、代码解析中使用的移位寄存器是2个抽头的,在构成矩阵的时候,将din当作了第一行,这样做会消除图像偏移的问题。

【问题10】图像采集为什么显示的一直是白屏啊(或者其他颜色)?
答:1. 需要按一下开发板上的按键才能正常显示(开发板上的按键都按一下)。      
      2. 确认是使用MDY官方提供的工程。其他工程未验证过。
      3. 请确认摄像头连接正确。正确的连接方法如下: http://www.fpgabbs.cn/data/attachment/forum/202006/05/164955oggw20yk0k0zywew.png

【问题11】老师边缘检测SCCB工程代码这部分是什么意思?



答:SCCB时钟信号sio_c:初始状态为高电平,由于频率为208K,因此高电平和低电平各持续60个时钟周期,又由于开始条件保持时间和开始条件建立时间的存在,sio_c在每个阶段的第一个数据和最后一个数据部分不能变为低电平,所以变低的条件为(count_bit>=0 && count_bit < (bit_num-2) && add_count_sck && count_sck == SIO_C-1);从低变高的条件为(count_bit>=1 && count_bit < bit_num && add_count_sck && count_sck == SIO_C/2-1)。

【问题12】sobel算法中阈值的设置主要依据什么?
答:阈值的设置可以根据对边缘的敏感度进行设置,如果设置的较大,只会检测出比较明显的边缘,如果设置的较小,就可以检测出不明显的边缘

【问题13】有个问题 IIC在执行下一阶段操作时候 中间必须等待5ms;我们SCCB中间需要等待么?
答:间隔两个时钟周期即可。

【问题14】还有我们给摄像头配置的参数 在文档的那个位置查找了 我们那个REG_NUM是不是少了一个?0-164 应该是165才对?
答:网盘已更新代码,请和老师获取最新网盘
【问题15】工程中,摄像头输出的时钟pclk经过了一个锁相环之后,产生的clk_25m时钟被后面模块使用,pclk和clk_25m两个时钟是同步的吗?
答:是的,锁相环在设置的时候,选择的是同频同相,所以频率和相位都不会改变,锁相环的作用只是使时钟变得更加稳定。

【问题16】ov7670_config模块在仿真的时候,通过Quartus调用modelsim进行仿真,Quartus编译没有错误,modelsim中报ov7670_para模块的错误,ov7670_para模块没有添加到工程里面

答:这个模块在仿真的时候,单独使用modelsim建立工程进行仿真,不要通过Quartus调用modelsim去仿真

【问题17】在3X3矩阵中,只有前面两行输入后,shift_ram那么前三行的像素才会对齐吧?为什么代码来第一像素就能获取到3X3的像素?
答:这是对边界行列的一种处理方法。理论上,是要输入2行后,才会获取到完整的3行对齐的数据。但为了实现简单,边界点就不考虑此种情况。
      更多的参考资料,请看视频《获取3X3图像矩阵方法》,该视频已经放在专题课网盘。

【问题18】我发现俺们高斯滤波会对齐不过有个问题呀,最后二行数据会丢失,如何是一整福完整画面了?
答:高斯滤波模块处理之后是会发生图像偏移的问题,具体情况请看高斯滤波的功能说明文档,在网盘03 模块设计与解析/06边缘检测_gs_filter/02 功能文档下。


【问题19】边缘检测工程中,如何确定ov7670摄像头输出图像的帧率?答:在ov7670摄像头的输出接口中,有一个场同步信号vsync,当它为高的时候,表示马上要开始一帧图像的传输。vsync高电平大概持续3个时钟周期,所以可以通过计算上升沿或者下降沿的方式确定帧率

二、基于FPGA图像处理工程之图像边缘检测工程【汇总帖】
http://www.fpgabbs.cn/forum.php?mod=viewthread&tid=879&fromuid=100105
(出处: 明德扬论坛)


三、【基于FPGA的图像处理工程】边缘检测工程模块划分总结与分析
http://www.fpgabbs.cn/forum.php?mod=viewthread&tid=863&fromuid=100105
(出处: 明德扬论坛)


页: [1]
查看完整版本: 01_边缘检测系列案例交流【汇总帖】