【Opencv】基于色差的简单目标提取
所有颜色都是由RRR(红)、GGG(绿)、BBB(蓝) 3个单色调配而成, 每种单色都人为地从0~2550~2550~255分成了256256256个级,所以根据RRR、 GGG、BBB的不同 组合可以表示256×256×256=16777216256×256×256=16777216256×256×256=16777216种颜色,被称为全彩色图像(full-color image)或者真彩色图像(true-color image)。一幅全彩色图像如果不压缩,文件将会很大。例如,一幅640×480640×480640×480像素的全彩色图像,一个像素由333个字节来表示RRR、 GGG、BBB各个分量,需要保存640×480×3=921600640×480×3=921600640×480×3=921600(约1MB)字节。
对于自然界的目标提取,可以根据目标的颜色特征,尽量使用RRR、 GGG、BBB分量及它们之间的差分组合,这样可以有效避免自然光变化的影响,快速有效地提取目标。
举例:要从果树上提取桃子的红色区域所在位置,如下面照片所示。
由于成熟桃子一般带红色,因此对彩色原图像首先利用红、绿色差信息提取图像中桃子的红色区域。对图像中的像素点(xix_ixi,yiy_iyi)(xix_ixi、yiy_iyi分别为像素点iii的xxx坐标和yyy坐标,0≤i<n0≤i<n0≤i<n,nnn为图像中像素点的总数),设其红色(RRR)分量和绿色(GGG)分量的像素值分别为RRR(xix_ixi,yiy_iyi)和GGG(xix_ixi,yiy_iyi),其差值为 βiβ_iβi=RRR(xix_ixi,yiy_iyi)−-−GGG(xix_ixi,yiy_iyi),由此获得一个灰度图像(RGRGRG图像), 若βi>0β_i>0βi>0,设灰度图像上该点的像素值为βi,否则为0(黑色)。之后做出RGRGRG图像的直方图找出谷点ααα(作为二值化的阈值)。逐像素扫描RGRGRG图像,若βi>αβ_i>αβi>α,则将该点像素值设为255255255(白色),否则设为000(黑色),获得二值图像。然后再对图像进行形态学处理。
色差图:
直方图:
二值化:
形态学处理:
import cv2
import numpy as np
import matplotlib.pyplot as pltimg = cv2.imread('peach.jpg', 1)
#因为cv2读取的照片类型是BGR类型,所以要转成RGB类型的照片
img_rgb = cv2.cvtColor(img, cv2.COLOR_BGR2RGB)
#得到r, g, b通道的照片
r, g, b = cv2.split(img_rgb)
#获得RG灰度图像
c = r - g
#求出色差图的直方图,查看分割的最优阈值
hist, bins = np.histogram(c, bins = 256, range = (0, 256))
plt.plot(hist)
plt.show()
#采用190作为阈值
thresh_value = np.sum(c[np.where(c != 0)]) / np.sum(c != 0)
_, peach = cv2.threshold(c, 190, 255, cv2.THRESH_BINARY_INV)
#进行腐蚀操作,将小白点去除
kernel = cv2.getStructuringElement(cv2.MORPH_RECT, (3, 3))
peach = cv2.erode(peach, kernel, iterations = 3)
【Opencv】基于色差的简单目标提取相关推荐
- 第一部分 利用opencv基于hsv颜色的目标提取效果和python代码
因为做毕设,想找个地方记录一下毕设当初写的东西. 第一部分,HSV模型进行颜色提取 先放效果图: 图1 左右摄像头采集到的乒乓球图像 图 2 HSV模型颜色提取器 图 2 HSV模型提取的效果图 提取 ...
- OpenCV基于颜色信息的车牌提取
OpenCV基于颜色信息的车牌提取 车牌提取的方法主要有:基于纹理特征分析法.基于数学形态学分析法.基于边缘检测的定位分析法.基于小波分析的定位分析法.基于彩色信息的定位分析法,本文采用的方法是基于颜 ...
- Opencv特征点检测及目标提取
Opencv特征点检测及目标提取 前言 1. 特征点检测方法简介 2. 单张图片特征点检测 3. opencv批量处理图片模板 4. 多张图片特征点检测及目标提取 总结 前言 在图像预处理时,会出现背 ...
- 基于mean-shift的简单目标跟踪
一.概述 作为即将踏入图像识别.目标跟踪领域的一名研究生,先从基础的学起,本文采用了经典的mean-shift算法,思路简单,实现的思路来源于一个网址:http://zhidao.baidu.com/ ...
- 本科时写的一篇《关于ISAR图像的自动目标提取技术》
ISAR图像中目标选取算法的研究 院 (系): 电子与信息工程学院 专 业:信息对抗技术 学 号: 指导教师: 2015年7月 毕业设计(论文) 题 ...
- OpenCV学习笔记(二十六)——小试SVM算法ml OpenCV学习笔记(二十七)——基于级联分类器的目标检测objdect OpenCV学习笔记(二十八)——光流法对运动目标跟踪Video Ope
OpenCV学习笔记(二十六)--小试SVM算法ml 总感觉自己停留在码农的初级阶段,要想更上一层,就得静下心来,好好研究一下算法的东西.OpenCV作为一个计算机视觉的开源库,肯定不会只停留在数字图 ...
- opencv图像前景目标提取
1.功能 论文图片处理需要用到简单的前景目标提取,这里采用opencv的grabCut函数: 前期可以采用selectROI获取矩形框(需要添加contrib库),也可以手动设定rect: 添加了一个 ...
- 基于监控视频的前景目标提取-数学建模
摘 要 本文研究了本次大赛D题的5个问题.包括静态和动态背景下前景目标检测与提取.存在摄像机抖动情况下前景目标检测与提取.应用以上建立的三种模型对各种视频文件进行显著帧号提取以及多摄像机协同的目标检 ...
- Python+OpenCV:基于色彩空间转换的目标跟踪
Python+OpenCV:基于色彩空间转换的目标跟踪 ######################################################################## ...
- 一种基于深度学习的目标检测提取视频图像关键帧的方法
摘要:针对传统的关键帧提取方法误差率高.实时性差等问题,提出了一种基于深度学习的目标检测提取视频图像关键帧的方法,分类提取列车头部.尾部及车身所在关键帧.在关键帧提取过程中,重点研究了基于SIFT特征 ...
最新文章
- C++/C++11中std::deque的使用
- datetime 和 smalldatetime
- tp6中使用微信支付sdk
- 浅谈Service Manager成为Android进程间通信(IPC)机制Binder守护进程之路
- C与C++中struct及C++中struct与class的区别
- linux ndk编译so,有的APP NDK 编译的SO文件 无法调用 PackageManager
- [ZJOI2016]旅行者(网格图分治最短路)
- ios 音高测试软件,App Store 上的“绝对音感训练!”
- 水晶报表横向打印BUG处理
- 解决安装python当中的.whl文件结尾的第三方库
- MySQL 使用utf8mb4代替utf8
- spring mvc 前台属性数据的传递和后台属性数据的接收
- 苹果笔记本链接刷卡打印机教程
- c语言pow函 新闻,c语言pow函数(C语言pow函数)
- CSS: 如何实现img垂直居中?
- leetcode 面试题57 - II. 和为s的连续正数序列
- 赵小楼《天道》《遥远的救世主》深度解析(66)辩证思维的讨论:人性、教义、逻辑
- 试戴耳钉会感染艾滋病吗?
- Cannot get property '......' on extra properties extension as it does not exist
- KindEditor编辑器结合EasyUi
热门文章
- 《云计算核心技术剖析》读书笔记之一
- 视频教程-Linux从入门到精通-Linux
- html中optition默认类型,射频微电子学概论.PDF
- 本模型基于Cruise软件搭建整车模型,基于Matlab/Simulink软件搭建整车控制模块,包括整车模式控制、扭矩分配
- 基于python下django框架 实现闲置物品二手跳蚤市场交易系统详细设计
- 2015WPE封包刷Q币图文教程
- mysql recovery_MySQL Recovery
- 计算机组成原理三个相关,计算机组成原理试题3
- android studio 2048游戏
- android gallery滑动监听,利用RecyclerView和ViewPager实现GalleryView可无限左滑右滑