杨振宁大学物理视频中黄色的字去掉(稳定简洁版本,四)

杨振宁大学物理1214

色带矩形带来很大麻烦!

今天想到一个方法,整个色带矩形拉通,做个通铺处理,不计算,代码做最小化,最稳定追求。

因为黄色字稳定,我们找到他的中心,而这个色带矩形和这个中心的关系及其稳定。

timer中最后整理的代码:

Bitmap glob_curBitmap = bmp;

Rectangle rc = new Rectangle(0, 0, glob_curBitmap.Width, glob_curBitmap.Height);

System.Drawing.Imaging.BitmapData bmpdata = glob_curBitmap.LockBits(rc,

System.Drawing.Imaging.ImageLockMode.ReadWrite,

glob_curBitmap.PixelFormat);

IntPtr imageptr = bmpdata.Scan0;

int ww = glob_curBitmap.Width;

int hh = glob_curBitmap.Height;

int bytes = 0;

bytes = ww * hh * 4;//此处针对的是32位位图

byte \[\] rgbValues = new bytebytes;

// pictureBox1.Image = bmp2;

// byte\[\]

glob_buffer8 = new byteww \* hh;

rgbbufercopyB = new byteww \* hh;

rgbbufercopyG = new byteww \* hh;

rgbbufercopyR = new byteww \* hh;

System.Runtime.InteropServices.Marshal.Copy(imageptr, rgbValues, 0, bytes);

glob_curBitmap.UnlockBits(bmpdata);

for (int ii = 0; ii < hh; ii++)

{

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

{

int n = ii * ww + j;

rgbbufercopyRn = rgbValues4 \* n + 2 ;

rgbbufercopyGn = rgbValues4 \* n + 1 ;

rgbbufercopyBn = rgbValues4 \* n ;

glob_buffer8n = (byte)(0.3 * rgbValuesn \* 4 + 2 + 0.6* rgbValuesn \* 4 + 1 + 0.1 * rgbValuesn \* 4);

}

}

//使用新方法,原版改进,不必匹配,利用黄色稳定性202412131248

int junzhix = 0;

int junzhiy = 0;

int 计数 = 0;

for (i**nt 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)//,黄色范围给的比较宽泛

{//黄色

//新增,寻找黄色字50-63外接矩形202412130850

if (hue > 50 && hue < 63)//黄色收窄

{

junzhiy += i;

junzhix += j;

计数++;

}

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;

}

}

}

黄色中心 = new Point(junzhix / 计数, junzhiy / 计数);

textBox15.Text = 黄色中心.X.ToString();

textBox16.Text = 黄色中心.Y.ToString();

//消除色带矩形

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

for (int j = 黄色中心.Y - 58; j < 黄色中心.Y + 60; j++)//58+60=118=色带矩形高

{

int temp = j * 640 + i;//原方法

rgbValuestemp \* 4 = (byte)(rgbValuestemp \* 4 + 50 > 255 ? 255 : rgbValuestemp \* 4 + 50);

rgbValuestemp \* 4 + 1 = (byte)(rgbValuestemp \* 4 + 1 + 50 > 255 ? 255 : rgbValuestemp \* 4 + 1 + 50);

rgbValuestemp \* 4 + 2 = (byte)(rgbValuestemp \* 4 + 2 + 50 > 255 ? 255 : rgbValuestemp \* 4 + 2 + 50);

}

showrgbbuffer2pict(rgbValues, ww, hh, pictureBox1);

ok,一种方法走到底,持续的改进使得现在这个版本感觉比机器视觉匹配版本好

所有都做完了,想一下能不能就在原来的网页上实现相同功能,把我们验证后的程序界面隐去呢?

可以试一试,绝对可以!

我的电脑屏幕是1366*768的,其他电脑分辨率没试过,你也可以去试一试,如果有问题,可以做相应修改,一定能行!

相关推荐
Tech-Net22 天前
TikTok视频怎么下载?2026最新TikTok无水印下载与批量解析教程
经验分享·音视频·视频编解码·视频处理·视频下载·tiktok视频下载·tiktok视频解析
Tech-Net23 天前
推特视频怎么下载?2026最新X(Twitter)视频下载教程
经验分享·音视频·工具·视频处理·视频下载·视频下载工具·推特视频下载
忧云1 个月前
视频抠图工具|发丝级视频抠图 MatAnyone2|免费开源|完整安装使用教程
视频处理·视频扣图·matanyone2
softbangong3 个月前
906-批量视频综合处理工具
音视频·视频处理·视频剪辑·视频合并·补帧·去黑边·视频旋转
q5507071774 个月前
格式转换专家视频格式转换教程
视频编解码·视频处理·格式工厂
阿里巴啦4 个月前
python+yt-dlp开源项目,支持 YouTube, Bilibili, TikTok/抖音,快手 等多个平台的视频/音频/字幕下载/ai摘要等功能
python·ffmpeg·whisper·音视频·视频处理·ai摘要·音视频转录
OPEN-Source4 个月前
开源工具轻松实现高清视频修复
人工智能·视频处理
扶尔魔ocy6 个月前
【QT window】ffmpeg实现录音功能之AAC格式--mp4
qt·ffmpeg·视频处理
扶尔魔ocy6 个月前
【QT window】ffmpeg实现手动绘图(裁剪)、缩放、拍照,显示fps等功能
qt·ffmpeg·视频处理
爱分享的飘哥10 个月前
第六十五章:AI的“精良食材”:图像标注、视频帧抽帧与字幕提取技巧
人工智能·语音识别·ai训练·视频处理·数据预处理·图像标注·字幕提取