当前位置: 首页 > news >正文

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

杨振宁大学物理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 byte[bytes];

                //    pictureBox1.Image = bmp2;
                //    byte[] 
                        glob_buffer8 = new byte[ww * hh];
                        rgbbufercopyB = new byte[ww * hh];
                        rgbbufercopyG = new byte[ww * hh];
                        rgbbufercopyR = new byte[ww * 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;
                            

                                rgbbufercopyR[n] = rgbValues[4 * n + 2] ;
                                rgbbufercopyG[n] = rgbValues[4 * n + 1] ;
                                rgbbufercopyB[n] = rgbValues[4 * n] ;
                              
                                glob_buffer8[n] = (byte)(0.3 * rgbValues[n * 4 + 2] + 0.6* rgbValues[n * 4 + 1] + 0.1 * rgbValues[n * 4]);
                                  
                                
                            }
                        }

  //使用新方法,原版改进,不必匹配,利用黄色稳定性202412131248
         
          
            int junzhix = 0;
            int junzhiy = 0;
            int 计数 = 0;
            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)//,黄色范围给的比较宽泛                       
                    {//黄色

                        //新增,寻找黄色字50-63外接矩形202412130850
                        if (hue > 50 && hue < 63)//黄色收窄
                        {
                        
                            junzhiy += i;
                            junzhix += j;
                            计数++;
                        }

                        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];
                    }
                }
            }

            黄色中心 = 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;//原方法
                    rgbValues[temp * 4] = (byte)(rgbValues[temp * 4] + 50 > 255 ? 255 : rgbValues[temp * 4] + 50);
                    rgbValues[temp * 4 + 1] = (byte)(rgbValues[temp * 4 + 1] + 50 > 255 ? 255 : rgbValues[temp * 4 + 1] + 50);
                    rgbValues[temp * 4 + 2] = (byte)(rgbValues[temp * 4 + 2] + 50 > 255 ? 255 : rgbValues[temp * 4 + 2] + 50);

                }

 showrgbbuffer2pict(rgbValues, ww, hh, pictureBox1);

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

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

可以试一试,绝对可以!

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

相关文章:

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

杨振宁大学物理1214 色带矩形带来很大麻烦&#xff01; 今天想到一个方法&#xff0c;整个色带矩形拉通&#xff0c;做个通铺处理&#xff0c;不计算&#xff0c;代码做最小化&#xff0c;最稳定追求。 因为黄色字稳定&#xff0c;我们找到他的中心&#xff0c;而这个色带矩形…...

排序算法(5):归并排序

问题 排序 [30, 24, 5, 58, 18, 36, 12, 42, 39] 归并排序 归并排序采用分治法&#xff0c;将序列分成若干子序列&#xff0c;每个子序列有序后再合并成有序的完整序列。 在数组排序中&#xff0c;如果只有一个数&#xff0c;那么它本身就是有序的。如果有两个数&#xff0…...

Gate学习(7)引入体素源

一、从GitHub下载体素源模型源码 下载地址&#xff1a;BenAuer2021/Phantoms-for-Nuclear-Medicine-Imaging-Simulation&#xff1a;用于核医学成像应用的模型&#xff08;闪烁显像、SPECT 和 PET&#xff09; --- BenAuer2021/Phantoms-For-Nuclear-Medicine-Imaging-Simulat…...

2024.12.14 TCP/IP 网络模型有哪几层?

2024.12.14 TCP/IP 网络模型有哪几层? 2024.12.14 今天周六 看到大伙都在考六级&#xff0c;我来复盘小林coding的计算机网络的知识点&#xff1a; TCP/IP 网络模型有哪几层? 问大家&#xff0c;为什么要有 TCP/IP 网络模型? 对于同一台设备上的进程间通信&#xff0c;有…...

item2 for macos

安装Item2 brew install iterm2 查看终端类型 cat /etc/shells Mac OS X 10.15 已经将默认的shell从Bash换成了zsh&#xff0c;所以不用安装&#xff0c;10.15以前的可以使用下面的命令进行安装 brew install zsh 安装Oh My ZSH # curl sh -c "$(curl -fsSL https://ra…...

二维三维空间上两点之间的距离

二维三维路径上,路径总距离以及途径点与障碍物之间的距离等都需要计算两点之间的距离。两点之间的距离有多种计算方法,这些计算方法主要取决于所考虑的空间维度、点的属性以及具体的应用场景。以下是一些常见的距离计算方法: 1. 曼哈顿距离(Manhattan distance) 定义:也…...

相机测距原理

基础概念的回顾 焦距的定义 焦距是指透镜或镜头的光学中心&#xff08;通常是透镜的几何中心&#xff09;到其焦点的距离。 焦点是光线的交点&#xff0c;它指的是透镜或镜头聚焦所有入射光线后汇聚的位置。焦点的位置与透镜的曲率和光线的入射角度相关。就是说所有光线经过…...

Debezium SchemaNameAdjuster 分析

Debezium SchemaNameAdjuster 分析 目录 1. 概述2. 核心功能3. 实现原理4. 应用场景5. 扩展示例6. 总结1. 概述 SchemaNameAdjuster 是 Debezium 中的一个工具类,主要用于确保 Schema 名称符合 Avro 命名规范。在数据库变更事件被转换为 Kafka 消息时,需要为每个表和字段创…...

Stable Diffusion绘画 | SDXL模型使用注意事项

注意事项 SDXL模型的使用&#xff0c;对电脑配置要求更高&#xff0c;需要 8GB 以上显存的显卡SDXL模型兼容性不太好&#xff0c;容易出现错误&#xff0c;对 Mac 电脑不友好只能选择 SDXL模型 训练的 LoRA 使用不能使用旧的 VAE文件 SDXL 专用 VAE 文件&#xff1a;sdxl_vae.…...

(五)机器学习 - 数据分布

数据分布&#xff08;Data Distribution&#xff09;是指数据在不同值或值区间内的分布情况&#xff0c;它描述了数据点在整个数据集中是如何分散或集中的。数据分布可以通过多种方式来分析和表示&#xff0c;包括图形和数值方法。 常见的数据分布特征和描述数据分布的方法&…...

Flink State面试题和参考答案-(上)

什么是 Flink 中的状态&#xff08;State&#xff09;&#xff1f; Flink 中的状态是指在 Flink 流处理程序中&#xff0c;操作符或函数用于存储和访问数据的机制。状态可以看作是在事件流处理过程中&#xff0c;随着时间推移而累积或变更的数据集合。在 Flink 的有状态流处理…...

利用开源Stable Diffusion模型实现图像压缩比竞争方法用更低的比特率生成更逼真的图像

概述 论文地址&#xff1a;https://studios.disneyresearch.com/app/uploads/2024/09/Lossy-Image-Compression-with-Foundation-Diffusion-Models-Paper.pdf 迪士尼的研究部门正在提供一种新的图像压缩方法&#xff0c;利用开源Stable Diffusion V1.2 模型&#xff0c;以比竞…...

QT信号与槽机制详解

当信号发出后&#xff0c;被连接的槽函数会自动被回调&#xff0c;类似观察者模式&#xff0c;当发生了感兴趣的事件&#xff0c;某一个操作就会被自动触发。信号是由于用户对窗口或控件进行了某些操作&#xff0c;导致窗口或控件产生了某个特定事件&#xff0c;这时Qt对应的窗…...

openGauss开源数据库实战二十二

文章目录 任务二十二 使用JDBC访问openGauss数据库任务目标实施步骤一、查看和设置隔离级别1.查看系统默认的隔离级别2.设置系统默认的隔离级别3.查看当前会话的隔离级别4.设置当前会话的隔离级别5.设置当前事务的隔离级别 二、读提交隔离级别测试三、可重复读隔离级别测试 任务…...

BurpSuite解决暴力破解时需要验证码问题

学习视频来自B站UP主泷羽sec&#xff0c;如涉及侵权马上删除文章。 笔记只是方便学习&#xff0c;以下内容只涉及学习内容&#xff0c;切莫逾越法律红线。 安全见闻&#xff0c;包含了各种网络安全&#xff0c;网络技术&#xff0c;旨在明白自己的渺小&#xff0c;知识的广博&a…...

WPF Combox使用 Text无法选择正确获取CHange后的Text

使用固定ComboxItem 无法通过 selectitem as object 来进行回去到 Content内的对香数据。那我只能这个样干&#xff1a; private void CBPaiweiLeixingSelect_Change(object sender, SelectionChangedEventArgs e){ ComboBox ThisBox sender as ComboBox;List<EDaxiaosuixi…...

【速览】设计模式(更新中)

目录 模式的历史设计模式是什么设计原则 SOLID1. 单一职责原则&#xff08;Single Responsibility Principle, SRP&#xff09;2. 开闭原则&#xff08;Open/Closed Principle, OCP&#xff09;3. 里氏替换原则&#xff08;Liskov Substitution Principle, LSP&#xff09;4. 接…...

【stable diffusion部署】Stable Diffusion开源本地化的文生图图生图AI

前言 主要功能 文生图、图生图、图像修复、处理、合成 所有的AI设计工具&#xff0c;安装包、模型和插件&#xff0c;都已经整理好了&#xff0c;&#x1f447;获取~ 系统要求 windows 10、11系统&#xff0c;建议6G显存&#xff0c;NVIDIA显卡推荐12G显存&#xff0c;内存建…...

县城楼市踩踏式降价,或现2字头,率先回归月薪一平方的合理价格

在一二线城市都在欢呼10月份、11月份成交量回升&#xff0c;楼价回稳的时候&#xff0c;广东一些县城却先顶不住了&#xff0c;大举降价&#xff0c;显示出县城楼市房价率先回归月薪一平方的合理水平&#xff0c;这将对全国楼市产生巨大影响。 据了解这个县城的楼价此前较为稳定…...

计算机组成原理(七):二进制编码

二进制编码 二进制系统 二进制由两个数字 0 和 1 组成&#xff0c;适合数字电路中的高电平&#xff08;1&#xff09;和低电平&#xff08;0&#xff09;表示。在计算机内部&#xff0c;所有数据&#xff08;如数字、文本、图像、声音等&#xff09;最终都以二进制形式存储和…...

基于ASP.NET+ SQL Server实现(Web)医院信息管理系统

医院信息管理系统 1. 课程设计内容 在 visual studio 2017 平台上&#xff0c;开发一个“医院信息管理系统”Web 程序。 2. 课程设计目的 综合运用 c#.net 知识&#xff0c;在 vs 2017 平台上&#xff0c;进行 ASP.NET 应用程序和简易网站的开发&#xff1b;初步熟悉开发一…...

Python:操作 Excel 折叠

💖亲爱的技术爱好者们,热烈欢迎来到 Kant2048 的博客!我是 Thomas Kant,很开心能在CSDN上与你们相遇~💖 本博客的精华专栏: 【自动化测试】 【测试经验】 【人工智能】 【Python】 Python 操作 Excel 系列 读取单元格数据按行写入设置行高和列宽自动调整行高和列宽水平…...

Cilium动手实验室: 精通之旅---20.Isovalent Enterprise for Cilium: Zero Trust Visibility

Cilium动手实验室: 精通之旅---20.Isovalent Enterprise for Cilium: Zero Trust Visibility 1. 实验室环境1.1 实验室环境1.2 小测试 2. The Endor System2.1 部署应用2.2 检查现有策略 3. Cilium 策略实体3.1 创建 allow-all 网络策略3.2 在 Hubble CLI 中验证网络策略源3.3 …...

鸿蒙中用HarmonyOS SDK应用服务 HarmonyOS5开发一个医院挂号小程序

一、开发准备 ​​环境搭建​​&#xff1a; 安装DevEco Studio 3.0或更高版本配置HarmonyOS SDK申请开发者账号 ​​项目创建​​&#xff1a; File > New > Create Project > Application (选择"Empty Ability") 二、核心功能实现 1. 医院科室展示 /…...

oracle与MySQL数据库之间数据同步的技术要点

Oracle与MySQL数据库之间的数据同步是一个涉及多个技术要点的复杂任务。由于Oracle和MySQL的架构差异&#xff0c;它们的数据同步要求既要保持数据的准确性和一致性&#xff0c;又要处理好性能问题。以下是一些主要的技术要点&#xff1a; 数据结构差异 数据类型差异&#xff…...

自然语言处理——循环神经网络

自然语言处理——循环神经网络 循环神经网络应用到基于机器学习的自然语言处理任务序列到类别同步的序列到序列模式异步的序列到序列模式 参数学习和长程依赖问题基于门控的循环神经网络门控循环单元&#xff08;GRU&#xff09;长短期记忆神经网络&#xff08;LSTM&#xff09…...

.Net Framework 4/C# 关键字(非常用,持续更新...)

一、is 关键字 is 关键字用于检查对象是否于给定类型兼容,如果兼容将返回 true,如果不兼容则返回 false,在进行类型转换前,可以先使用 is 关键字判断对象是否与指定类型兼容,如果兼容才进行转换,这样的转换是安全的。 例如有:首先创建一个字符串对象,然后将字符串对象隐…...

Xen Server服务器释放磁盘空间

disk.sh #!/bin/bashcd /run/sr-mount/e54f0646-ae11-0457-b64f-eba4673b824c # 全部虚拟机物理磁盘文件存储 a$(ls -l | awk {print $NF} | cut -d. -f1) # 使用中的虚拟机物理磁盘文件 b$(xe vm-disk-list --multiple | grep uuid | awk {print $NF})printf "%s\n"…...

技术栈RabbitMq的介绍和使用

目录 1. 什么是消息队列&#xff1f;2. 消息队列的优点3. RabbitMQ 消息队列概述4. RabbitMQ 安装5. Exchange 四种类型5.1 direct 精准匹配5.2 fanout 广播5.3 topic 正则匹配 6. RabbitMQ 队列模式6.1 简单队列模式6.2 工作队列模式6.3 发布/订阅模式6.4 路由模式6.5 主题模式…...

深度学习水论文:mamba+图像增强

&#x1f9c0;当前视觉领域对高效长序列建模需求激增&#xff0c;对Mamba图像增强这方向的研究自然也逐渐火热。原因在于其高效长程建模&#xff0c;以及动态计算优势&#xff0c;在图像质量提升和细节恢复方面有难以替代的作用。 &#x1f9c0;因此短时间内&#xff0c;就有不…...