( ̄▽ ̄)额,毛子或者二毛需要你。
这几年某两国的战争无人机大规模运用, 模拟图传又火了。
CVBS模拟图传几乎是80年代的技术, 那时电子技术有限, 现在电子技术发达了,突然在想能不能用现在的技术对传统的CVBS信号进行实时的的图像处理, 如平滑, 滤波, 降噪融合接收等等, 以达到提高模拟视频效果的目的。这样也能让飞无人机的人用起来舒服一点
就在这时,我发现某海鲜软件上这种开发板比较便宜,眼中一亮
这种开发板当年大学的FPGA课程实验室人手一个,当年好像是2K多的价格, 现在大量退役,便宜了,资源是一颗EP2C35, 35K的LE,在当年算是比较多了,最主要是, 这个板子有CVBS-IN! 还有一个VGA Out, 用来做这个再适合不过了,于是花费了两百大洋搞了一块。
到货之后, 上电, 五颜六色的流水灯, 酷炫啊!
这个板子的CVBS输入芯片是ADV7181B, 和现在常用的TI的TVP5150不同, ADI的技术差点, 不过也够用了
板子的原理图和CD光盘基本都开源的, 随便输入DE2 - pdf 就能找到了,
于是果断在电脑上装上altera 的那个啥软件,再搞了个黑白的CVBS摄像头, 连了起来, 但是VGA不好搞。。。家里已经没有VGA接口的电脑了, 灵机一动, 找了一个VGA转HDMI适配器
原生的代码倒是有个从CVBS接收数据显示到VGA的代码DE_TV
, 折腾了一下编译通过, 下载下去, 从显示屏上看到的是这样的
卧槽什么情况, 不过算是有图,很坑啊, 查了一下, 才知道这个ADV7181B不是自动兼容NTSC和PAL的, 这份代码只支持NTSC格式 ,而我的摄像头是PAL的。
接下来就得动点真格了,把DE2_TV的代码翻来覆去地看,期间还联系了echo大神, 他之前调试过,不过是ADV7180,最终终于找到了适配PAL的方法, 下载下去, 成功出图!
代码在这里
,我也传到了github上
XXXXXXXXXXXXXXXXXX/11tools/DE2_TV_PAL
大家可以点个赞一下
成功之后, 就可以玩点花的啦, 比如叠加一个十字准星
只需要三行代码就可以搞定
assign mRedOSD = (((VGA_Y == 240)&&( VGA_X < 350 )&& (VGA_X > 290)) || ((VGA_X == 320) && (VGA_Y <270) && (VGA_Y > 210)))? 9'h000 : mRed; assign mGreenOSD = (((VGA_Y == 240)&&( VGA_X < 350 )&& (VGA_X > 290))|| ((VGA_X == 320) && (VGA_Y <270) && (VGA_Y > 210)))? 9'hfff : mGreen; assign mBlueOSD = (((VGA_Y == 240)&&( VGA_X < 350 )&& (VGA_X > 290)) || ((VGA_X == 320) && (VGA_Y <270) && (VGA_Y > 210)))? 9'h000 : mBlue;
或者把图像二值化(绿色可能是VGA转换器自己补的)
wire mVGA_r_th = (mRed > (10'b1110000000)) ? 1 : 0; wire mVGA_g_th = (mGreen > (10'b1110000000)) ? 1 : 0; wire mVGA_b_th = (mBlue > (10'b1110000000)) ? 1 : 0; wire [9:0] mVGA_r_th_full = (mVGA_r_th == 1) ? 10'b1111111111 : 0; wire [9:0] mVGA_g_th_full = (mVGA_g_th == 1) ? 10'b1111111111 : 0; wire [9:0] mVGA_b_th_full = (mVGA_b_th == 1) ? 10'b1111111111 : 0;
这些图像处理都是实时的,帧率很高, 是用电脑做图像处理无法比拟的。
现在在尝试一些卷积平滑的算法, 或者再搞一个CVBS输入模拟, 把两个接收机的图像合并起来均值,提高质量。
总之发现了一个新的玩法,还是比较高兴的
接下来尝试Sobel算子边缘检测, 找了一些老文章
XXXXXXXXXXXXXXXXXXXXXXX/oomusou/archive/2008/08/25/verilog_sobel_edge_XXXXXXXXXXXml
可惜文章中的工程现在已经下载不了, 作者也联系不上, 试着重建了一下他的工程
运行起来估计是移位寄存器哪里没有设置对, 显示是黑屏的。有大佬也可以帮忙看看
[修改于 7个月22天前 - 2024/03/30 23:11:30]
这种测试直接用高速ad采集传给usb,在pc跑软件解码算法
Sobel的代码能跑了, 但是有些奇怪, 画面是黑的,边缘不太清晰, 应该是哪里没有搞对
时段 | 个数 |
---|---|
{{f.startingTime}}点 - {{f.endTime}}点 | {{f.fileCount}} |
200字以内,仅用于支线交流,主线讨论请采用回复功能。