引导线的提取预处理(2)——基于颜色通道分离的阈值过滤法(红线)

2023-11-13

原始图

原始图

提取红线

本文主要对比两种方法
原始方法

红色通道强度-阈值>其它任意通道强度,则判断为红色。
该方法的缺点,容易将其它颜色(如橘黄色)也误判位红色,在这些情况下需要增大阈值。但增大阈值后,在光强较弱时无法准确提取红色。

改进方法

原始方法筛选有两步,绝对差距(阈值)与相对差距(没有)。针对此,判断红色通道与其它通道的相对关系时,改为:红色通道强度-阈值>其它两通道强度之和。

原始方法:红色通道阈值过滤,其它通道清零

   int red = channels.at(2).at<uchar>(i,j) - 30;
   if ((red < channels.at(0).at<uchar>(i,j))
       ||(red < channels.at(1).at<uchar>(i,j)))
   {
       channels.at(0).at<uchar>(i,j) = 0;
       channels.at(1).at<uchar>(i,j) = 0;  
       channels.at(2).at<uchar>(i,j) = 0;
   }  

改进方法:红色-阈值>其它通道之和

  // 提取红色-【改进方法】红红色通道值-阈值 > 其它通道值之和           
   int red = channels.at(2).at<uchar>(i,j) - 10;
   if (red < (channels.at(0).at<uchar>(i,j)+ channels.at(1).at<uchar>(i,j)))
   {
       channels.at(0).at<uchar>(i,j) = 0;
       channels.at(1).at<uchar>(i,j) = 0;  
       channels.at(2).at<uchar>(i,j) = 0;
   }  

结果对比

原图1

在这里插入图片描述

原始方法(阈值=10)

在这里插入图片描述

改进方法

在这里插入图片描述

原图2

在这里插入图片描述

阈值=10

在这里插入图片描述

阈值=20

在这里插入图片描述

阈值=30

在这里插入图片描述

改进方法

在这里插入图片描述

原图3

在这里插入图片描述

阈值=30

在这里插入图片描述

改进方法

在这里插入图片描述

原图4

在这里插入图片描述

阈值=30

在这里插入图片描述

改进方法

在这里插入图片描述

说明

改进的方法不需要调整阈值,适应范围更广,且处理后图像的边缘更干净。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

引导线的提取预处理(2)——基于颜色通道分离的阈值过滤法(红线) 的相关文章

  • nginx check健康检查

    nginx利用第三方模块nginx upstream check module来检查后端服务器的健康情况 大家都知道 前段nginx做反代 如果后端服务器宕掉的话 nginx是不能把这台realserver提出upstream的 所以还会有
  • 高性能 Jsonpath 框架,Snack3 3.2.29 发布

    Snack3 一个高性能的 JsonPath 框架 借鉴了 Javascript 所有变量由 var 申明 及 Xml dom 一切都是 Node 的设计 其下一切数据都以ONode表示 ONode也即 One node 之意 代表任何类型

随机推荐

  • VUE项目性能优化,v-if,v-for,props,computed,watch......

    VUE项目性能优化 v if v for props computed watch 下个星期就要用vue开发了 就未雨绸缪的搜集了一些干货 整理出来 1 解决v for和v if优先级问题 以及通过计算属性来做数据筛选
  • Dynamics 365 DevOps CI/CD之WebResource

    对于D365自身的发布 简单点来说就是Solution的发布 复杂一些会涉及周边集成接口等一系列的发布 如果是单纯的Solution的发布的Azure DevOps商店里有很多工具 比如Power DevOps Tools 这个我之前也有博
  • Qt之QTableView显示鼠标悬浮下的项的信息

    业务上遇到一些需求 某个需求是当鼠标移动到QTableView的item上时 显示该item的某些信息 首先想到的思路就是鼠标悬浮事件 即安装QTableView的事件过滤器 然后在eventFilter进行判断即可 实现很简单 主要在针对
  • 段式存储管理、段页式存储管理

    分页与分段的区别 1 页是信息的物理单位 是系统管理的需要而不是用户的需要 而段是信息的逻辑单位 分段是为了更好地满足用户的需要 2 页的大小固定且由系统决定 一个系统只能有一种大小的页面 而段的长度不固定 由用户所编写的程序决定 3 分页
  • WinEdt 31天试用期到期解决方案

    WinEdt 在试用期过后 会频繁出现 WinEdt s trial period of 31 days has elapsed 的提示窗口 解决方案 修改脚本Exit edt 从Options Options Interface Adva
  • 多个DLL之间的Static变量以及模板实例化

    结论如下 1 DLL之间调用类public静态成员变量 不能使用A m static形式调用 其中A为类名 m static为A中的static成员变量 若使用 编译出现链接错误 必须使用函数调用方式 为m static增加set get函
  • python得到列表list的交集与差集

    python 神勇 得到两个列表的差集和交集 根本不用循环 一句话就可以搞定 交集 b1 1 2 3 b2 2 3 4 b3 val for val in b1 if val in b2 print b3 差集 b1 1 2 3 b2 2
  • linux gtk主题安装教程,如何获取、安装和制作 GTK 主题

    多数桌面版 Linux 都支持主题 GUI LCTT 译注 图形用户界面 独有的外观或者 风格 叫做主题 用户可以改变主题让桌面看起来与众不同 通常 用户也会更改图标 然而 主题和图标包是两个独立的实体 很多人想制作他们自己的主题 因此这是
  • Delphi Idhttp的post方法

    POST var Sendmessage TStringList 发送内容 Receivemessage TStringStream 返回内容 begin Sendmessage TStringList Create Receivemess
  • 三目运算符“?:”省略中间操作数

    在使用三目运算符的时候 我们经常见到的是 x x y 就是if else的简写 如果x为真 就返回x 如果x为假 就返回y 这是最简单最基本的用法 但是有时候会看到这种用法 x y 与 之间没有任何操作数 这是什么用法呢 在通过几个实例的实
  • 解决No converter for [class java.util.ArrayList] with preset Content-Type ‘null‘问题

    一 出现问题 二 解决方法 1 检查Maven依赖是否成功导入 记得clear后刷新
  • FileStream读写文件

    FileStream类 操作字节的 可以操作任何的文件 StreamReader类和StreamWriter类 操作字符的 只能操作文本文件 1 FileStream类 FileStream类 命名空间 System IO 1 构造函数 F
  • 关于开源许可证

  • “servlet监听器”以及在web.xml中的配置

    监听器 监听器就是一个java程序 功能是监听另一个java对象变化 方法调用 属性变更 以上是普通监听器 下面开始研究servlet监听器 注册监听器只需要配置到web xml中就行 servlet 监听器 8个监听器 准确说是8个接口
  • ext3日志文件系统工作原理理解

    ext3文件系统是在ext2文件系统的基础上增加了日志功能 具体的做法就是 在向文件系统中的文件写入数据的时候 会先产生一个journal log日志 这个journal log日志是生成在内存中的 系统中有一个后台进程kjournald2
  • 在node中使用es7

    今天学写了体验异步的终极解决方案 ES7的Async Await这篇文章 发现作者是用 es7 的语法写 node 所以顺便学习了一下如何在 node 中使用 es7 的语法 记录一下 首先安装 babel cli yarn add bab
  • Linux网络设备驱动结构概述

    2019独角兽企业重金招聘Python工程师标准 gt gt gt 网络设备驱动相比字符型设备的驱动要复杂一些 除了总体上驱动的框架有一些相似外 有很多地方都是不同 但网络设备驱动有一个很大的特点就是有固定的框架可以遵循 具体的框架会在后边
  • 简单的取色器js原生写法,vue可用无插件

    div class tes div
  • linux定时任务php

    1 在需要定时执行的PHP文件的第一行加 usr local php bin php 服务器php exe的位置 2 上传要定时执行的php文件到一个位置 可以通过 path to your php script php 访问到 脚本位置
  • 引导线的提取预处理(2)——基于颜色通道分离的阈值过滤法(红线)

    原始图 提取红线 本文主要对比两种方法 原始方法 红色通道强度 阈值 gt 其它任意通道强度 则判断为红色 该方法的缺点 容易将其它颜色 如橘黄色 也误判位红色 在这些情况下需要增大阈值 但增大阈值后 在光强较弱时无法准确提取红色 改进方法