杨振宁大学物理视频中黄色的字,c#写程序去掉

先看一下效果:(还有改进的余地)

我的方法是笨方法,也比较刻板。

1,首先想到,把屏幕打印下来。c#提供了这样一个函数:

Bitmap bmp = new Bitmap(640, 480, PixelFormat.Format32bppArgb);

// 创建一个画布

Graphics g = Graphics.FromImage(bmp);

Point hello = new Point(0, 300);

g.CopyFromScreen(hello, Point.Empty, new Size(640, 480));

// 释放画布资源

g.Dispose();

2,上面代码什么意思呢?就是屏幕上取一幅640*480的bmp图像。

我们观察上图,黄色字方框大概在距离顶部300个像素的地方,即y=300,另外x在最左端=0.

执行代码,并显示,就是上图有半部分,要注意的是:我们这些代码在桌面运行时,不能遮挡网页(0,300)这个位置640*480的区域

3,显示640*480图像的代码为:

timer1.Start();//显然,我们创建这个timer循环,为了实时捕捉网页视频。

显然,我们第一步得到的bmp,可以直接给picturebox。即:

private void timer1_Tick(object sender, EventArgs e)

{pictureBox1.Image = bmp;}//我们已经得到想要的图像

4,处理黄色字,首先黄色字外有一个覆盖带(显然是个矩形带),看上去,也应该消掉。

5,我们观察,发现在640*480这个截取的图像中,覆盖带y=205左右,x显然不是0,因为黑边很宽,大概在100左右,我们假定就是100,好这个矩形带的(top,left)有了,要消掉他,还得知道(botom,right),为了方便我们right取640.经过测试,发现bottom也是一个定值。

6,处理这个矩形框带还差一个条件,就是框内外的颜色差值。这个好办:

如上图,我们用阴影部分的灰度平均值减去框外灰度平均值,就可以得到这个颜色差。

7,矩形框带+颜色差,就消掉了矩形框带

8,想办法除却换色的字,容易,但干掉后怎么填充呢?这是个麻烦事!

我使用每一个字周边来填充,如下图:

每个字的每一笔画,如箭头开始位置,都用上下两块颜色值合并来填充。

好所有事情搞完,就是了。

rgb转黄色的色调,在35到85之间。

代码还比较麻烦,不是很满意。而且这黄色的字位置会变化,矩形框带也跟着变。

想到的另一个办法是:

megauging中形状匹配已经实现了,抄过来就好了。

即黄色的字框入roi,学习,然后实时匹配这些字,即使黄色的字位置会变化,矩形框带也跟着变也不影响!

关键是,字扣掉后填充还得下功夫!颜色差相对容易些!

突然想到形态学腐蚀

相关推荐
xixixi7777711 小时前
水印攻击中(鲁棒性攻击、表达攻击、解释攻击)的区别,详细解释清楚
图像处理·人工智能·计算机视觉·数字水印
Antonio91514 小时前
【图像处理】libtiff 的介绍与使用
图像处理
第二层皮-合肥15 小时前
图像处理中的暗场校正
图像处理·数码相机·计算机视觉
chao1898441 天前
多光谱图像融合:IHS、PCA与小波变换的MATLAB实现
图像处理·计算机视觉·matlab
这张生成的图像能检测吗1 天前
(论文速读)基于图像堆栈的低频超宽带SAR叶簇隐蔽目标变化检测
图像处理·人工智能·深度学习·机器学习·信号处理·雷达·变化检测
禁默2 天前
第四届图像处理、计算机视觉与机器学习国际学术会议(ICICML 2025)
图像处理·机器学习·计算机视觉
Antonio9152 天前
【图像处理】tiff格式介绍
图像处理·人工智能
Antonio9152 天前
【图像处理】png 格式详解
图像处理
AndrewHZ2 天前
【图像处理基石】什么是alpha matting?
图像处理·人工智能·计算机视觉·matting·发丝分割·trimap·人像模式
LabVIEW开发3 天前
LabVIEW液位边缘检测
图像处理·计算机视觉·labview·labview知识·labview功能·labview程序