FPGA 模拟CVBS图像处理
smith2024/03/30原创 电子技术计算机电子学 IP:广东
关键词
FPGADE2图像处理

这几年某两国的战争无人机大规模运用, 模拟图传又火了。

CVBS模拟图传几乎是80年代的技术, 那时电子技术有限, 现在电子技术发达了,突然在想能不能用现在的技术对传统的CVBS信号进行实时的的图像处理, 如平滑, 滤波, 降噪融合接收等等, 以达到提高模拟视频效果的目的。这样也能让飞无人机的人用起来舒服一点

1711808625875.jpg

就在这时,我发现某海鲜软件上这种开发板比较便宜,眼中一亮

EDIT_20240330_221502.png

这种开发板当年大学的FPGA课程实验室人手一个,当年好像是2K多的价格, 现在大量退役,便宜了,资源是一颗EP2C35, 35K的LE,在当年算是比较多了,最主要是, 这个板子有CVBS-IN! 还有一个VGA Out, 用来做这个再适合不过了,于是花费了两百大洋搞了一块。

到货之后, 上电, 五颜六色的流水灯, 酷炫啊!

EDIT_20240330_222928.jpg

这个板子的CVBS输入芯片是ADV7181B, 和现在常用的TI的TVP5150不同, ADI的技术差点, 不过也够用了

EDIT_20240330_223101.jpg

attachment icon adv7181.pdf 828.14KB PDF 50次下载 预览

板子的原理图和CD光盘基本都开源的, 随便输入DE2 - pdf 就能找到了, 

attachment icon DE2_schematics.pdf 357.30KB PDF 50次下载 预览

于是果断在电脑上装上altera 的那个啥软件,再搞了个黑白的CVBS摄像头, 连了起来, 但是VGA不好搞。。。家里已经没有VGA接口的电脑了, 灵机一动, 找了一个VGA转HDMI适配器

EDIT_20240330_223750.jpg

原生的代码倒是有个从CVBS接收数据显示到VGA的代码DE_TV

attachment icon DE2_TV.zip 157.97KB ZIP 8次下载

, 折腾了一下编译通过, 下载下去, 从显示屏上看到的是这样的

WIN_20240316_21_49_39_Pro.jpg

卧槽什么情况, 不过算是有图,很坑啊, 查了一下, 才知道这个ADV7181B不是自动兼容NTSC和PAL的, 这份代码只支持NTSC格式 ,而我的摄像头是PAL的。


接下来就得动点真格了,把DE2_TV的代码翻来覆去地看,期间还联系了echo大神, 他之前调试过,不过是ADV7180,最终终于找到了适配PAL的方法, 下载下去, 成功出图!

WIN_20240323_20_22_00_Pro.jpg

代码在这里

attachment icon DE2_TV_PAL.zip 5.50MB ZIP 8次下载

,我也传到了github上

XXXXXXXXXXXXXXXXXX/11tools/DE2_TV_PAL

大家可以点个赞一下

成功之后, 就可以玩点花的啦, 比如叠加一个十字准星

WIN_20240323_22_30_23_Pro.jpg

只需要三行代码就可以搞定

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转换器自己补的)

WIN_20240324_23_13_54_Pro.jpg

  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

可惜文章中的工程现在已经下载不了, 作者也联系不上, 试着重建了一下他的工程

attachment icon DE2_TV_SOBL.zip 5.66MB ZIP 3次下载

运行起来估计是移位寄存器哪里没有设置对, 显示是黑屏的。有大佬也可以帮忙看看

[修改于 8个月26天前 - 2024/03/30 23:11:30]

来自:电子信息 / 电子技术计算机科学 / 计算机电子学
4
 
5
已屏蔽 原因:{{ notice.reason }}已屏蔽
{{notice.noticeContent}}
~~空空如也
大仙
8个月25天前 IP:广东
930692

( ̄▽ ̄)额,毛子或者二毛需要你。

引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
warmonkey
8个月24天前 IP:广东
930732

这种测试直接用高速ad采集传给usb,在pc跑软件解码算法

引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
smith作者
8个月23天前 IP:广东
930767

Sobel的代码能跑了, 但是有些奇怪, 画面是黑的,边缘不太清晰, 应该是哪里没有搞对

WIN_20240402_22_14_28_Pro.jpg

attachment icon DE2_TV_SOBL1.zip 7.62MB ZIP 4次下载


引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论
smith作者
3个月10天前 IP:广东
937362

最新罗刹国和乌鸡国都开始搞光纤图传的无人机了

引用
评论
加载评论中,请稍候...
200字以内,仅用于支线交流,主线讨论请采用回复功能。
折叠评论

想参与大家的讨论?现在就 登录 或者 注册

smith
学者 机友 笔友
文章
189
回复
2356
学术分
4
2015/01/11注册,14时11分前活动

收音机爱好者

主体类型:个人
所属领域:无
认证方式:手机号
IP归属地:广东
相似文章推荐
插入公式
评论控制
加载中...
文号:{{pid}}
投诉或举报
加载中...
{{tip}}
请选择违规类型:
{{reason.type}}

空空如也

加载中...
详情
详情
推送到专栏从专栏移除
设为匿名取消匿名
查看作者
回复
只看作者
加入收藏取消收藏
收藏
取消收藏
折叠回复
置顶取消置顶
评学术分
鼓励
设为精选取消精选
管理提醒
编辑
通过审核
评论控制
退修或删除
历史版本
违规记录
投诉或举报
加入黑名单移除黑名单
查看IP
{{format('YYYY/MM/DD HH:mm:ss', toc)}}