【 声明:版权所有,欢迎转载,请勿用于商业用途。 联系信箱:feixiaoxing @163.com】

图像处理中,颜色是一个很重要的属性。很多同学都以为颜色只有红、橙、黄、绿、青、蓝、紫这几种颜色。事实上并不是这样的。如果我们以红、蓝、绿为基色,其他颜色都是以这三种颜色为基础搭配而成的话,那么颜色的种类应该有256 * 256* 256这么多。这就是为什么,很多知名的消费品每一次在产品发布会的时候都要精心挑选几种颜色供大家挑选。

那么,作为图像处理来说,如果要识别筛选某种颜色的话,是不是直接从r、g、b里面筛选一个范围就可以实现这个目标呢?这样其实是可以的,但是不准确。一种更好的办法是先将图像从rgb转化为h、s、v。这里的h是色度,s是饱和度,v是亮度。如果需要挑选一个颜色的话,那么选择对应的h、s、v范围即可。

还记得在大学本科论文设计的时候,当时的论文题目叫彩色图像的增强显示。那个时候只是知道r、g、b,并不知道h、s、v,所以就在rgb通道上面做了各种增强方法,比如说直方图均衡等等,虽然也有一定的效果,但是那个效果真是惨不忍睹。

hsv本身是为了提取特定的区域范围,这部分相当于代替了算子运算、二值化运算,后期的区域分割、属性过滤、ocr识别、发送命令,这部分还是一样,和之前的流程没有什么差别。下面说说应该怎么做一个颜色提取,首先需要明确颜色范围,大家可以参考这篇blog,地址在这,https://blog.csdn.net/zhangdongren/article/details/98941445

接着就可以自己写一个python+opencv的代码来进行处理,比如像这样,原来代码的地址在这,https://www.cnblogs.com/puheng/p/9228473.html

import cv2
import numpy as nplower_blue=np.array([110,50,50])
upper_blue=np.array([130,255,255])
img1=cv2.imread("car.png")
xsize,ysize,channel=img1.shape
img1=cv2.resize(img1,(ysize,xsize))frame=cv2.cvtColor(img1,cv2.COLOR_BGR2HSV)
mask_blue=cv2.inRange(frame,lower_blue,upper_blue)
res_blue=cv2.bitwise_and(frame,frame,mask=mask_blue)res_blue=cv2.cvtColor(res_blue,cv2.COLOR_HSV2BGR)
cv2.imshow("mask_blue",mask_blue)
cv2.imshow("res_blue",res_blue)
cv2.waitKey(0)
cv2.destroyAllWindows()

先准备一个有蓝色车牌的图片,命名为car.png,比如像这样

直接输入python执行语句,比如说python demo.py,不出意外就可以得到这样的结果,

这样,通过一个颜色,就可以比较容易的将需要的物体从图像中识别出来了。

halcon学习和实践(颜色筛选)相关推荐

  1. halcon学习和实践(第一个范例threshold.hdev)

    [ 声明:版权所有,欢迎转载,请勿用于商业用途. 联系信箱:feixiaoxing @163.com] 对于halcon学习,一个比较好的学习方法就是学习它的范例,效果虽然慢,但是作用是实实在在的.范 ...

  2. halcon学习和实践(工业视觉套路)

    [ 声明:版权所有,欢迎转载,请勿用于商业用途. 联系信箱:feixiaoxing @163.com] 和学术领域为了追求正确率尝试各种算法不同,工业视觉领域更多的是一种算法的套路.这些套路有它自己的 ...

  3. Halcon 学习笔记八:颜色识别

    Halcon 学习笔记八:颜色识别 一.图像处理需要的知识 二.图像处理的预处理和分割过程 二.颜色识别的方法 三.例子一 四.例子二 五.例子三 一.图像处理需要的知识 1.图像处理基础(rgb(h ...

  4. HALCON学习之旅(七)

    HALCON学习之旅(七) 文章目录 HALCON学习之旅(七) 1.MFC与Halcon混合编程 2.C#与Halcon混合编程 3.Halcon测量助手使用 4.Halcon实例进阶一(拟合区域椭 ...

  5. HALCON学习之旅(四)

    HALCON学习之旅(四) 文章目录 HALCON学习之旅(四) 1.如何对区域进行反选,补集,交集,合并操作 2.如何对区域进行填充操作 3.如何根据区域特征过滤区域 4.如何画各种交互ROI图形 ...

  6. Halcon学习笔记:3D_coordinates(3D标定)

    Halcon学习笔记:3D_coordinates(3D标定) 欢迎有兴趣的朋友一起学习,代码理解注释有问题的可以告诉我,一起讨论,共同进步. *初始化程序,dev_close_window() *关 ...

  7. HALCON学习之旅(六)

    HALCON学习之旅(六) 文章目录 HALCON学习之旅(六) 1.Halcon代码如何导出高级编程语言代码 + 配置Halcon/C++编程环境 2.Halcon连续采集相机图像 3.Halcon ...

  8. HALCON学习之旅(五)

    HALCON学习之旅(五) 文章目录 HALCON学习之旅(五) 1.如何获取程序运行时间 2.如何将Bayer图像转换为彩色图像 3.如何将图像转化为矩阵形式 4.如何让图像自适应窗口(补充) 5. ...

  9. HALCON学习之旅(二)

    HALCON学习之旅(二) 文章目录 HALCON学习之旅(二) 1.HALCON用户界面操作符 2.HACLON基础语法 ①.运算符 ②.Tuple数组 ③.字符数字格式化 1.HALCON用户界面 ...

最新文章

  1. rust外服组建战队_[新手教程]模组服服务器指令大全(最新版)
  2. python决策树id3算法_python实现决策树ID3算法
  3. java并发编程(二)多个线程多个锁
  4. 阿里云吕漫漪:深度解析国内首个云原生数据库POLARDB的“王者荣耀”
  5. Java学习笔记:BlockingQueue接口
  6. github免费私有仓库使用
  7. mysql查询表记录总数sql_SQL Server-快速查询表中的记录总数
  8. Cocos2d-x制作《单机斗地主》源码解剖5:玩家的出牌
  9. 怎么给新版edge换皮肤外观? | 怎么给edge添加chrome插件?
  10. 南京信息工程大学计算机与科学专业,南京信息工程大学王牌专业有哪些及专业排名...
  11. 【C/C++】输入一个整数的二目运算式的字符串,如100+20,332-19,200*2333,44/33二目运算取”加减乘除“中的一种输出运算式的整数结果值
  12. 大锅菜机器人_学校食堂用上炒菜机器人 几分钟出一锅菜(图)
  13. NLTK11《Python自然语言处理》code10 分析语句的含义
  14. AI行业精选日报_人工智能(12·16)
  15. 有n个人围成一圈,顺序排号。从第一个人开始报数(从1到3报数),凡是报到3的人退出圈子,问最后留下来的是原来的第几位(指针方法处理)。——C语言
  16. 也说对程序语言的认识
  17. 微信小程序的常见的面试题(总结)
  18. IDEA 2018 激活 IDEA 2018.3激活教程 最新的(三种)—2018.11.26亲测
  19. 原生JS案例(面向对象)——按住鼠标实现左右拖动列表
  20. Maven入门 (IDEA环境下的使用在第十三部分)

热门文章

  1. ReactNative bug:Application has not bean registered.This is either due to require()error dur
  2. play框架2.5.6教程——使用play控制台
  3. 【原创】新韭菜日记58--20190618 很久没写了,因为套牢,因为没内容可写
  4. 巨噬细胞膜包覆的负载二氧化锰MnO2和顺铂Pt的仿生纳米粒(齐岳)
  5. 小猫爪:S32K3学习笔记05-S32K3之ADC
  6. 2022世界杯神预测有哪个最神!最后一个富而喜悦到底是谁?
  7. rk3288 添加系统广播
  8. python右键idel消失问题
  9. [CC2642r1][syscfg] 中文图形化界面,方便快速熟悉工具使用
  10. 高能同步辐射光源基建攻克首个难关