opencv图像颜色过滤
A. 如何使用Opencv对图像进行颜色特征提取
打开小画家,将色卡打开,点击吸管工具,移动鼠标到红色块上方,松开鼠标,此时,吸管工具已经提取了红色色块信息。然后点击右方的“编辑颜色”,弹出颜色选择对话框,此时,右下角有刚才习惯的红绿蓝颜色信息,如红152,绿18,蓝15。这个就是颜色对应的RGB色彩值。
创建VC控制台工程,加入所需头文件和库文件。注意要事先将opencv 头文件和库文件添加到工程属性中,作者使用opencv2.4+VC2010示范。
#include <opencv2/highgui/highgui.hpp>
#include <opencv2/imgproc/imgproc.hpp>
#include <iostream>
#include <stdio.h>
#include <vector>
#include <math.h>
#pragma comment (lib,"opencv_core244d.lib")
#pragma comment (lib,"opencv_highgui244d.lib")
#pragma comment (lib,"opencv_imgproc244d.lib")
定义一个颜色常量target,默认值即为刚才吸管工具提取的红色色块的RGB值分量,和一个计算与颜色标准值色差的函数,暂定为色差在10以内即为相近颜色。这里cv::Vec3b 变量对应一个数组值, Vec3b[0] 对应blue,Vec3b[1]对应green,Vec3b[2]对应Red,即BGR。
接着添加以下代码,目的为读取源图片,根据图片大小做一定的缩放,然后定义同样大小的一个灰度图,用于存贮计算结果值。核心算法如下,遍历源图片,色差(与红色色块比较)低于30的即为需要提取的颜色值,将此像素位置记录并写入到灰度图中,以黑色显示,否则设置为白色。然后将处理前后图片显示出来。
实际商业应用中也是可以如法炮制的,比如下图的药片,大小,颜色不统一,如何提取识别黄色小药片在何处或计算其数量呢。
笔者尝试使用吸管工具提取其BGR值为(22,184,245),将色差由10调整为30,可以正确检测此药片。如图。
B. 哪个高手跟我讲一下在opencv中要怎么提取一张彩色图像中的红色部分,然后把他们修改为黑色
分成BGR三个通道就是了,再把r通道大于某个值的改为0
C. 有没有人知道如何用OpenCV实现对一个彩色图像的个颜色块分割出来并对每一颜色块进行判断颜色啊很急,希
彩色图像比较麻烦,要分成三个通道,求柱状图
D. opencv有直接提取图像色度.饱和度.亮度的函数吗
【1】先调用cvCvtColor将图像转到HSV颜色空间,如:cvCvtColo(rgb,hsv,CV_BGR2HSV);然后调用cvSplit函数,就可以将H分量分离出来专,再来单独访属问H分量,H对于的通道是0即可。
【2】HSV(Hue,Saturation,Value)是根据颜色的直观特性由A.R.Smith在1978年创建的一种颜色空间,也称六角锥体模型(HexconeModel)。这个模型中颜色的参数分别是:色调(H),饱和度(S),亮度(V)。
E. Opencv数字图像处理颜色识别问题
你的来这个问题要分两步去做,首先源是定位,找到你的这个正方形,然后去颜色匹配。所以涉及了两部分代码。扫描一个矩形区域,你的这帧图像里是不是就这么一个矩形区域,还是有别的矩形区域?黄色红色会不会在其他地方也有,这些还没交代清楚。
F. 如何在opencv中实现特定颜色的识别和选取
就是跟PhotoShop里魔术棒差不多?那你首先得确定:
用什么颜色空间:RGB?HSV?YUV?
如何取特征呢:像素值?直方图?
用什么分类器:SVM? 神经网络?
G. 如何用Opencv 把视频提取的图像中特定区域的颜色读取出来求范例程序
for(i=0;i<Img->height;i++)
for(j=0;j<Img->width;j++)
{
color[i][j][0]=(Img->imageData+i*Img->widthStep)[3*j];
color[i][j][1]=(Img->imageData+i*Img->widthStep)[3*j+1];
color[i][j][2]=(Img->imageData+i*Img->widthStep)[3*j+2];
}
其中:img为要提取的图像(RGB图像,若为灰度图像或者二值图更简单);版
color数组用于存放颜色的RGB值;权
H. Opencv 捕获摄像头的颜色异常!蓝色是正常颜色,橘红色是捕获摄像头数据后显示到界面上的颜色。 QT
你好,请注意一下一般图像都是RGB排列的,OPENCV一般情况下是BGR排列,所以如果不调换顺序,蓝色会显示成红色。
I. opencv 颜色识别,识别水体黄色、绿色,怎么弄,希望详细讲解下软硬件设计,因为我对这些不熟悉
你转成别的颜色空间,比如LAB,可能好弄写
J. opencv进行颜色识别
图片还是视频?
图片的话读到一个Mat里:
Mat img;
img.imread(address,1);
,访问mat的元素就行了:
cout<<img.ptr<uchar>(i,j);
会输出BGR值