杨振宁大学物理视频中黄色的字,c#写程序去掉(原版改进,二)

我发现,黄色消去比较稳定。

而色带矩形,经常变化,不稳定。

所以我们能不能先保证稳定的消去黄色?可以。

我们原来的代码黄色和色带矩形混在一起了,我们拆分开:

而且我们知道图像高度480,黄色字分布在h>=240以下.所以代码改变为:

for (int i = 240; i <480; i++)

{

byte fugair = 0; byte fugaig = 0; byte fugaib = 0;

byte fugai = 0;

for (int j = 0; j < 640; j++)

{

int n = i * ww + j;

float hue = 0;

RGB2HSLTest(rgbValues4 \* n + 2, rgbValues4 \* n + 1, rgbValues4 \* n, ref hue);

if (hue > 35 && hue < 85 )//黄色过了220,黄色范围给的比较宽泛

{

rgbValues4 \* n + 2 = (byte)(rgbValues4 \* n + 2 - 4 \* ww / 2 + fugair / 2);

rgbValues4 \* n + 1 = (byte)(rgbValues4 \* n + 1 - 4 \* ww / 2 + fugaig / 2);

rgbValues4 \* n = (byte)(rgbValues4 \* n - 4 \* ww / 2 + fugaib / 2);

}else{

rgbbufercopyRn = fugair = rgbValues4 \* n + 2 ;

rgbbufercopyGn = fugaig = rgbValues4 \* n + 1 ;

rgbbufercopyBn = fugaib = rgbValues4 \* n ;

}

}

}

显然,这样一改变,很多不稳定的代码都可以放下,不要了,timer中就这一点点代码,实在太简洁了。运行效果如下:

打印图像,除去黄色字,到这里,其实就完成了。而且现在代码又稳定又少。

而,人总是不甘心,想去试试,挑战一下,失败了,也没关系!

要注意的是,我们现在使用的是不相干问题分开处理法,稳扎稳打!

而前面混在一起,看不清稳定的部分成绩,而且异常时,成绩为零,容易打击自信心,很是气馁!

而现在,稳定的不仅代码简洁,永远有50分。想做下一步,行,不做,也行!

所以分开问题,分清主要矛盾(去黄色字是主要矛盾,其他是次要的),针对性处理,编程中也很重要!

好,我们前面是一种去矩形色带的方法!

经过一晚的思考,发现一个很好的方法:就是平均灰度色差是50(观察后经验值,我们不必花功夫去寻找了),所以,我们的程序仍然保持上面稳定和最小,只要引入这个常量50就好,把矩形色带填充即可!

好像挺简单,问题就在这个矩形色带会变化,我们如何实时知道他的大小呢?

靠前面指定的值显然不行!图像一直稳定如下,可以,但是,并非如此!

我们无论如何变,黄色字是稳定的,我们找出这一堆黄色字的外接矩形,是不是问题就解决了?可以试一试!

相关推荐
工具派3 小时前
Word文档太大怎么拆分?段落结构与两种拆法的边界实测
开发语言·c#·word
潜龙95273 小时前
需求文档一键变测试用例:手工用例智能生成平台
开发语言·c#
Lost of 程序猿3 小时前
命令模式实战:把“下单后的动作“打包成可执行的任务
后端·设计模式·c#·asp.net·命令模式
淡海水4 小时前
16-01-C#数据结构源码-附录A-术语表
unity·c#·游戏引擎·il2cpp
小羊没烦恼!4 小时前
【译】利用Asp.net MVC处理文件的上传下载
开发语言·缓存·c#·word·powerpoint·.net
波力海苔夹心脆6754 小时前
C# 海康威视摄像头二次开发入门:HCNetSDK 登录、实时预览、云台控制、录像与抓图(WinForms 实战)
开发语言·windows·经验分享·tcp/ip·c#
淡海水5 小时前
16-03-C#数据结构源码-附录C-参考资源
unity·c#·游戏引擎·il2cpp
asdzx675 小时前
Excel 水印方案对比:页眉图片 vs 背景图片(附 C# 实现)
c#·excel
影寂ldy6 小时前
C# TCP转串口Modbus网关终极完整版笔记(队列防抖+一问一答+帧解析+双客户端轮询)
笔记·tcp/ip·c#
Chen—LSN20 小时前
C语言——文件操作(2)
c语言·开发语言·c++·经验分享·笔记·算法·c#