1、opencv形状识别加颜色识别
大概思路如下,可能可以改进:
1. 用Hough变换进行圆检出
2. 对检出的每个圆范围内的颜色做histogram并取出现概率最高的颜色作为该圆的颜色信息
3. 将所有检出的圆的颜色和参照物(小球)的颜色信息进行比较,取最接近的一个进行追踪即可
2、opencv颜色识别代码
#include <iostream>
#include <cv.h>
#include "highgui.h"
#ifdef _DEBUG
#pragma comment(lib, "opencv_core245d.lib")
#pragma comment(lib, "opencv_highgui245d.lib")
#pragma comment(lib, "opencv_imgproc245d.lib")
#else
#pragma comment(lib, "opencv_core245.lib")
#pragma comment(lib, "opencv_highgui245.lib")
#pragma comment(lib, "opencv_imgproc245.lib")
#endif
int main()
{
cv::VideoCapture capture(0);
if (!capture.isOpened())
return 0;
cv::Mat image, HSV, channels[3];
float threshold = 0.3;
while (capture.read(image))
{
cv::cvtColor(image, HSV, CV_BGR2HSV);
cv::split(HSV, channels);
cv::threshold(channels[0], channels[1], 15, 1,CV_THRESH_BINARY_INV);
cv::threshold(channels[0], channels[0], 245, 1,CV_THRESH_BINARY);
channels[0] += channels[1];
cv::erode(channels[0], channels[0], cv::Mat::ones(3,3,CV_8UC1), cv::Point(1,1), 3);
cv::Scalar v = cv::sum(channels[0]);
int result = v[0] > channels[0].total() * threshold;
std::cout << result << std::endl;
}
}
3、Opencv数字图像处理颜色识别问题
你的这个问题要分两步去做,首先是定位,找到你的这个正方形,然后去颜色匹配。所以涉及了两部分代码。扫描一个矩形区域,你的这帧图像里是不是就这么一个矩形区域,还是有别的矩形区域?黄色红色会不会在其他地方也有,这些还没交代清楚。
4、有关OpenCV的颜色识别问题
5、opencv 固定位置颜色识别
先用opencv的长方体识别出正方形,然后计算出相对位置,在识别颜色,挺简单,就是太麻烦,自己慢慢写,能出来
6、opencv进行颜色识别
图片还是视频?
图片的话读到一个Mat里:
Mat img;
img.imread(address,1);
,访问mat的元素就行了:
cout<<img.ptr<uchar>(i,j);
会输出BGR值
7、如何用opencv实现街景红绿灯颜色的识别。
首先要复杂的街景中检测出红绿灯的矩形区域,将其设为ROI区域后再对局部图像进行颜色识别。
8、如何在opencv中实现特定颜色的识别和选取
就是跟PhotoShop里魔术棒差不多?那你首先得确定:
用什么颜色空间:RGB?HSV?YUV?
如何取特征呢:像素值?直方图?
用什么分类器:SVM? 神经网络?
9、opencv 用c++语言 怎样识别出一片区域的红绿灯并判别颜色。
判别颜色:取某区域内颜色的RGB各分量数值(或YUV分量数值)和,分别判断各分量之间的比例关系,当满足一个自己定义的范围时,实现判定。
比如:RGB的比例中R的比例远高于G和B时,判定为红色;R和B、G和B都是前者比例非常大,而且R和G的比例差不多时判断为黄色;G的比例都大于R和B时为绿色。
这个自定义的范围需要用不同的图片、不同照明、不同对比度、不同背景色彩、不同透明度,这些来验证数据,取一个在各种情况下都能工作的范围。
10、opencv颜色识别
打开摄像头程序的链接:http://blog.csdn.net/thefutureisour/article/details/7530177
把图像转换到HSV通道,红色在H中有一个区间,网上查一查资料很多。
剩下的就是判断了