问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

哪个高手跟我讲一下在opencv中要怎么提取一张彩色图像中的红色部分...

发布网友 发布时间:2022-05-02 10:34

我来回答

3个回答

懂视网 时间:2022-04-18 10:12

这次给大家带来python opencv检测并提取目标颜色,python opencv检测并提取目标颜色的注意事项有哪些,下面就是实战案例,一起来看一下。

实例如下所示:

# -*- coding:utf-8 -*-
author = 'kingking'
version = '1.0'
date = '14/07/2017'
import cv2
import numpy as np
import time
if name == 'main':
 Img = cv2.imread('example.png')#读入一幅图像
 kernel_2 = np.ones((2,2),np.uint8)#2x2的卷积核
 kernel_3 = np.ones((3,3),np.uint8)#3x3的卷积核
 kernel_4 = np.ones((4,4),np.uint8)#4x4的卷积核
 if Img is not None:#判断图片是否读入
 HSV = cv2.cvtColor(Img, cv2.COLOR_BGR2HSV)#把BGR图像转换为HSV格式
 '''
 HSV模型中颜色的参数分别是:色调(H),饱和度(S),明度(V)
 下面两个值是要识别的颜色范围
 '''
 Lower = np.array([20, 20, 20])#要识别颜色的下限
 Upper = np.array([30, 255, 255])#要识别的颜色的上限
 #mask是把HSV图片中在颜色范围内的区域变成白色,其他区域变成黑色
 mask = cv2.inRange(HSV, Lower, Upper)
 #下面四行是用卷积进行滤波
 erosion = cv2.erode(mask,kernel_4,iterations = 1)
 erosion = cv2.erode(erosion,kernel_4,iterations = 1)
 dilation = cv2.dilate(erosion,kernel_4,iterations = 1)
 dilation = cv2.dilate(dilation,kernel_4,iterations = 1)
 #target是把原图中的非目标颜色区域去掉剩下的图像
 target = cv2.bitwise_and(Img, Img, mask=dilation)
 #将滤波后的图像变成二值图像放在binary中
 ret, binary = cv2.threshold(dilation,127,255,cv2.THRESH_BINARY) 
 #在binary中发现轮廓,轮廓按照面积从小到大排列
 contours, hierarchy = cv2.findContours(binary,cv2.RETR_EXTERNAL,cv2.CHAIN_APPROX_SIMPLE) 
 p=0
 for i in contours:#遍历所有的轮廓
 x,y,w,h = cv2.boundingRect(i)#将轮廓分解为识别对象的左上角坐标和宽、高
 #在图像上画上矩形(图片、左上角坐标、右下角坐标、颜色、线条宽度)
 cv2.rectangle(Img,(x,y),(x+w,y+h),(0,255,),3)
 #给识别对象写上标号
 font=cv2.FONT_HERSHEY_SIMPLEX
 cv2.putText(Img,str(p),(x-10,y+10), font, 1,(0,0,255),2)#加减10是调整字符位置
 p +=1
 print '黄色方块的数量是',p,'个'#终端
输出目标数量 cv2.imshow('target', target) cv2.imshow('Mask', mask) cv2.imshow("prod", dilation) cv2.imshow('Img', Img) cv2.imwrite('Img.png', Img)#将画上矩形的图形保存到当前目录 while True: Key = chr(cv2.waitKey(15) & 255) if Key == 'q': cv2.destroyAllWindows() break

原始图像

处理之后保存的图像

相信看了本文案例你已经掌握了方法,更多精彩请关注Gxl网其它相关文章!

推荐阅读:

python批量读取图片且存入数据库的实现

在Window10中Python3.5怎么安装opencv

热心网友 时间:2022-04-18 07:20

我这有个函数,是我以前用的,希望能帮到你。
// 提取特定颜色的目标:colorMode:1为Red,2为Green,3为Blue
int TakeColorFromImage(IplImage *srcImg,IplImage* result, int colorMode)
{
int i=0,j=0;
CvScalar cs=cvScalarAll(0);
for (i=0;i<result->height;i++)
{
for(j=0;j<result->width;j++)
{
cs=cvGet2D(result,i,j);
if (colorMode==1)
{
if(cs.val[0]>cs.val[1]&& cs.val[0]>cs.val[2] && cs.val[0]<245 && cs.val[1]<245 && cs.val[2]<245)
{
cvSet2D(result,i,j,cs);
}
else
{
continue;
}
}
else if (colorMode==2)
{
if(cs.val[1]>cs.val[0]&& cs.val[1]>cs.val[2] && cs.val[0]<245 && cs.val[1]<245 && cs.val[2]<245)
{
cvSet2D(result,i,j,cs);
}
else
{
continue;
}
}
else
{
if(cs.val[1]>cs.val[0]&& cs.val[1]>cs.val[2] && cs.val[0]<245 && cs.val[1]<245 && cs.val[2]<245)
{
cvSet2D(result,i,j,cs);
}
else
{
continue;
}
}
}
}
return 1;
}

我这是提取RGB中的其他一个颜色的目标,你要将其设置为0的话,就该cvSet2d()这里。追问你是怎么确定你提取到的是红色的区域,红色不是应该有一个像素范围吗

热心网友 时间:2022-04-18 08:38

分成BGR三个通道就是了,再把r通道大于某个值的改为0追问那你说的每个值是什么值呢

追答是阈值,根据具体情况分析得到

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
2024上海高考考几天 利息五零五是什么意思 细数唐朝各个不同阶段的妆容,初唐娇俏,盛唐精致,晚唐的有点丑 穿古装化什么妆才好看 中国最被忽略的火锅大省,吃肉第一名! win10清理电脑垃圾cmd命令是什么 知识经济经济定义 宇泛智能app是什么意思 宇泛智能科技 宇泛智能是什么 opencv用鼠标在视频中画框,截取目标区域 bool drawing_box = false; bool pause = tr 草鱼去除腥味最好用什么?怎么做出来的鱼最好吃?!?? 基于OpenCV的图像分割OpenCV中的图像分割的函数有哪些 OpenCV相关问题:可以用轮廓图和原图得出用轮廓裁剪出来的图像吗 多吃鱼类补充蛋白质,草鱼怎么做才能好吃不腥? opencv 如何提取图像里面线条位置信息 草鱼怎么去腥味? opencv中怎么样读取图像的部分图像 我想要在opencv中用最小矩形外接图中图像并剪切截取出这个矩形部分。 怎么给草鱼去腥? 如何给草鱼去土腥味? 老婆对老公的生日祝福语个性 老婆祝老公的生日祝福语 妻子祝福老公生日语 华为一个手机两个微信怎么弄的 老婆对老公发的生日祝福 华为手机怎样注册第二个? 华为手机怎么搞两个 老婆给老公写的生日祝福 华为手机如何同时登录两个? 侠盗猎车手罪恶都市可以购买警察局和军营吗?如果可以如何购买? 草鱼弄好吃,要怎么去腥,炸着吃要什么配料!!! 在VS2010中运用opencv处理图像如何提取黑白图像的像素点然后进行图像分割? 侠盗车手罪恶都市怎么卖警察局和军营? 侠盗飞车罪恶都市军营能买吗 普通的草鱼怎样可以去腥,啤酒鱼可以用草鱼做吗? 如何用opencv提取一张图片的像素矩阵 草鱼怎么做才能不腥? 用opencv提取图像轮廓之后能不能再把轮廓内部图像或者像素截取出来? 侠盗飞车罪恶都市怎么买酒吧还有怎么进军营不被攻击 opencv如何实现对图像分块提取颜色直方图 如何用Opencv 把视频提取的图像中特定区域的颜色读取出来?求范例程序 使用OpenCV复制图像上的某一块区域??? 侠盗飞车(罪恶都市)的机场附近军营里武装直升机怎么得到,存放什么地方下次还能用? 香肠蒸饭需要什么配料? 侠盗猎车手:罪恶都市怎么买警察局 罪恶都市怎么买下警察局 网贷还不上了,有些还是714的,怎么办? 侠盗飞车罪恶都市怎么收买警察 侠盗飞车之罪恶都市怎么买房子,还有怎么买飞机