说是原创,只是大家都知道的,整理了些,在加了些自己的理解,
如有雷同,乃有缘人,不胜高兴。
1. RGB to Gray
图像处理的 helloworld
公式:Gray = (0.299 * R + 0.587 * G + 0.114 * B)
效果如图:
无论,上位模型,下位 C/ HDL 都比较好实现。
RGB -> Gray 搞定的朋友,
下面也是一样做,
RGB<->YUV<->YMCK (YMCK在扫描仪里面用的多)
本帖最后由 5525 于 2016-6-9 07:35 编辑
MicroPython中文社区https://micropython.org.cn/forum/
2. Gama 补正
就是针对,显示器的显示曲线, 在图像输出前进行强化补正,
补正曲线 可以根据自己需要定。经典曲线如图
效果自然是亮化了。
当然,有效照相馆用的高级显示器,会有自动补正,补正到 显示出来的 跟 打印机 打的效果一样。
那个是另外的技术。
本帖最后由 5525 于 2016-6-4 15:05 编辑
MicroPython中文社区https://micropython.org.cn/forum/
3. 矩阵处理,滤镜
这个叫法很多,不一一列举了.
具体做法主要两步,
第一步:数据流
,代表矩阵如图,这个具体效果不同,可以有 n 种变化,
具体的参数不懂 也可有 n 种变化
第二步:计算
代表性的有,区域乘好 求和,取代原来的点
具体的,计算公式,边界处理,计算区域,取位,各个算法而异。
MicroPython中文社区https://micropython.org.cn/forum/
4. 输入设备坏点补正
大家用摄像头,用的比较火。
摄像头也是人做的,生产线上出来的,出来的图像也会有坏点,坏区,如图。
咋办?矫正呗,左右点补正,上下补正,周围补正都可以。
大多这功能都集成在摄像头里面了。
坏太多咋办,放心吧,出厂都测试和矫正过了,坏太多的会从产线上踢下去。
本帖最后由 5525 于 2016-6-4 15:28 编辑
MicroPython中文社区https://micropython.org.cn/forum/
5. 图像 放大缩小
缩放,都是矩阵处理的 分支, 这里算法也很多,有兴趣的自己查查
发大比缩小稍微麻烦的是,图像多出来了,要找个地方放好。
硬件实现的时候,最好用软件跑跑 看看效果。
跑sim的时候,最好用小图。不然 你有的等了。
MicroPython中文社区https://micropython.org.cn/forum/
6. 图像旋转
如图,这个自己没亲自搞过,不多说
有同事搞过,有DSP实现的,也有FPGA实现的。
MicroPython中文社区https://micropython.org.cn/forum/
7 多图合成
现在有大上设备多了,图像源也多,
如果 多图合一,项目中见到也多。
大都 功能如下。
1. 位置能自由移动
2. 开窗能自由jiequ
3. 层次能自由设定
4. 透过性可调
这里算法到是简单,就是
图像吞吐带宽要求比较高。最大的 有要 3 个独立的 64bit ddr4.
还有声音要同步的话,另外还要把声音的延时 给对好,不然口型不对。
本帖最后由 5525 于 2016-6-4 15:52 编辑
MicroPython中文社区https://micropython.org.cn/forum/
8 图像直接合成
如图,这个监控里面用的多,合成比较简单,但是 frame buff还是要的,
有些还有把时间 和 地址 信息 坐在里面,加密,再存起来,这个就烦了。
今天脑洞一开,就想起这些了,以后慢慢补充吧
有同行的,请出来 灌水吧 本帖最后由 5525 于 2016-6-4 16:18 编辑
MicroPython中文社区https://micropython.org.cn/forum/
9 水平,垂直翻转
如图,
水平翻转:这个比较简单啦,同期延时一行,加个line_buf就可以了
垂直翻转:这个line_buf就够了,同期信号也不要延时,但是要加frame_buf, 外挂DDR或SDRAM
MicroPython中文社区https://micropython.org.cn/forum/
10. 高亮处理
这个属于 初中级处理。
要对 1 帧(frame) 的图像,进行信息统计后调节(请看图下面的曲线,随手画的,示意用),
在做乒乓 frame_buf, 乒乓 line_buf 也需要啦
同期信号 不要变,在输出前,根据调节好的信息,对输出的图像进行点点置换即可。
(也可以指定 高亮开窗)
本帖最后由 5525 于 2016-6-5 07:37 编辑
MicroPython中文社区https://micropython.org.cn/forum/
11. OSD
文字显示,电视台,监控设备 显式显示日期地点,等等
如图
A:这个最好做,单字体英文,背景直接拉白,一个RAM加点电路就搞定了
B:这个比A多个,背景100%透过功能,多点电路
C:显示中文,这个纯硬件做RAM会用太多,load到DRAM里面也可以,随机访问太多了
有条件用软件做吧
D:多字体,字模就更多了,软件或DSP吧
电视台的输出有时也带,现在有些电视机也自带文字显示功能,这对电视机要求就高了。
一边要识别说的什么话,一边还要判断电视台输出了文字没有。
MicroPython中文社区https://micropython.org.cn/forum/
fghdzb,你就当我这是抛砖引玉,
有空给大家总结总结呗。
MicroPython中文社区https://micropython.org.cn/forum/
总结不敢,图像处理入门有点难。要懂数学分析、数值计算、线性代数、复变等等,C++或MATLAB等编程功底要有,具体到各个行业还要有专业知识背景。本人菜鸟,纯属业余爱好。
能灌水,共享些知识就行啊。
数学和Matlab我都比较弱,应用不同,图像处理也不一样
正常客户 说个公式 或 丢个论文 啥的,我们都要看好多天。
最喜欢直接丢软件模型的,我们直接固化,管实现就行。
MicroPython中文社区https://micropython.org.cn/forum/
12. fps变换
fps, 1秒多少帧.
fps的标准很多,现在高速度,大图像,各种影像设备很多。
fps 24, 25, 30, 60i/p, 120, 240 等等很多。
有多fps到少fps变换(如图),也有少fps到多fps.
简单看的话,原理和图像的扩大缩小类似,只是图像的方向是在frame方向上。
所以外置大的,能存几帧的memory是必须的。 FPGA一般都是外置,有些ASIC内置。
帧 memory, 都得标配,memory controller, arbiter, line_buf.
这样数据流算起来了。
计算,有什么资源,用什么算法的话,看具体项目了。
剩下就是图像的同期信号,这个很重要,具体还要看你的输入输出设备。
MicroPython中文社区https://micropython.org.cn/forum/
复杂的都是 简单的做出来
把基本的弄好,写精,最重要。
我看好你奥,能动手 能总结。
MicroPython中文社区https://micropython.org.cn/forum/
做上一两个你就发现,这些都是入门用的,还好啦,
只是FPGA内部,不涉及输入 输出。
MicroPython中文社区https://micropython.org.cn/forum/