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

news/2024/12/15 11:59:58/

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

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

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

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

而且我们知道图像高度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(rgbValues[4 * n + 2], rgbValues[4 * n + 1], rgbValues[4 * n], ref hue);

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

{

                                   rgbValues[4 * n + 2] = (byte)(rgbValues[4 * n + 2 - 4 * ww] / 2 + fugair / 2);
                                    rgbValues[4 * n + 1] = (byte)(rgbValues[4 * n + 1 - 4 * ww] / 2 + fugaig / 2);
                                    rgbValues[4 * n] = (byte)(rgbValues[4 * n - 4 * ww] / 2 + fugaib / 2);

}else{

                                     rgbbufercopyR[n] = fugair = rgbValues[4 * n + 2] ;
                                    rgbbufercopyG[n] = fugaig = rgbValues[4 * n + 1] ;
                                    rgbbufercopyB[n] = fugaib = rgbValues[4 * n] ;
                                   

}

}

}

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

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

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

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

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

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

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

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

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

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

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

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


http://www.ppmy.cn/news/1555282.html

相关文章

Java 动态设置 JVM 参数的方法

Java虚拟机&#xff08;JVM&#xff09;在运行Java应用时&#xff0c;其性能调优和资源管理至关重要。虽然许多JVM参数在启动时通过命令行设置&#xff0c;但在应用运行期间动态调整某些参数也是可行的。通过动态设置JVM参数&#xff0c;开发者可以更有效地管理资源使用和优化性…

健康运动:开启活力生活的钥匙

健康运动&#xff1a;开启活力生活的钥匙 在现代社会&#xff0c;随着科技的飞速发展和生活节奏的加快&#xff0c;越来越多的人开始意识到健康的重要性。健康不仅关乎我们的身体状态&#xff0c;更直接影响到我们的心理状态和生活质量。而健康运动&#xff0c;作为维护和提升…

经典NLP案例 | 推文评论情绪分析:从数据预处理到模型构建的全面指南

NLP经典案例&#xff1a;推文评论情绪提取 项目背景 “My ridiculous dog is amazing.” [sentiment: positive] 由于所有推文每秒都在传播&#xff0c;很难判断特定推文背后的情绪是否会影响一家公司或一个人的品牌&#xff0c;因为它的病毒式传播&#xff08;积极&#xff0…

深度学习——线性回归(一)

一、线性回归实现&#xff08;从零开始&#xff09; 数据生成 import random import torch import matplotlib.pyplot as plt#***************** 1.数据生成函数 ***************** def synthetic_data(w torch.tensor([2, -3.4]), b 4.2, num_examples 1000):x torch.no…

最大公约数和最小公倍数(c++)

一、题目 题目描述 输入两个正整数m和n&#xff0c;求其最大公约数和最小公倍数。 输入 两个整数 输出 最大公约数&#xff0c;最小公倍数 样例输入 5 7 样例输出 1 35 二、分析 时刻记得我们用的是C 要知道求最大公约数GCD和最小公倍数LCM的方法&#xff0c; 最大公约数的计…

CentOS7 Apache安装踩坑

Gnome桌面右键弹出终端。 [rootlocalhost ~]# yum repolist 已加载插件&#xff1a;fastestmirror, langpacks /var/run/yum.pid 已被锁定&#xff0c;PID 为 2611 的另一个程序正在运行。 Another app is currently holding the yum lock; waiting for it to exit... [root…

蓝桥杯刷题——day1

蓝桥杯刷题——day1 题目一题干题目解析代码 题目二题干题目解析代码 题目一 题干 给定一个字符串 s &#xff0c;验证 s 是否是 回文串 &#xff0c;只考虑字母和数字字符&#xff0c;可以忽略字母的大小写。本题中&#xff0c;将空字符串定义为有效的 回文串 。 题目链接&a…

在Elasticsearch (ES) 中,integer 和 integer_range的区别

在Elasticsearch (ES) 中,integer 和 integer_range 是两种不同的字段类型,它们用于存储和查询不同类型的数据。 Integer: integer 类型是用于存储32位整数值的简单数据类型。这个类型的字段适合用来表示单一的整数数值,例如用户的年龄、商品的数量等。支持标准的数值操作,…