通过HSV进行RGB二值化,
来源:互联网 发布:淘宝店铺动态在哪里看 编辑:程序博客网 时间:2024/05/19 23:00
通过HSV进行RGB二值化,其可以利用与颜色目标提前,如车牌的识别,可以把其蓝色大概区域识别出来,再进行边缘检测,从而实现车牌识别,有利于提高检测的鲁棒性。
#include "stdafx.h"#include "opencv2/highgui/highgui.hpp"#include "opencv2/imgproc/imgproc.hpp"#include <iostream>#include <stdio.h>#include <stdlib.h>using namespace cv;using namespace std; int _tmain(int argc, _TCHAR* argv[]){ Mat src=imread("D:/car3.jpg"); Mat src0=src; Mat src1=src; Mat m=src;; //分离出H S V 各个分量 Mat h_plane; Mat s_plane; Mat v_plane; Mat dst;//把RGB图像转化为HSV图 blur(src,src,Size(3,3),Point(-1,-1)); cvtColor(src, dst, CV_RGB2HSV ); cvtColor(src, src, CV_RGB2GRAY ); h_plane.create(src.size(),src.type()); s_plane.create(src.size(),src.type()); v_plane.create(src.size(),src.type());//提取HSV中的各分量,然后对图像进行二值化处理 vector<Mat>hsv_planes; split(dst, hsv_planes ); h_plane=hsv_planes[0]; s_plane=hsv_planes[1]; v_plane=hsv_planes[2]; for (int j = 0; j< src.rows; j++) { const uchar* data_h=h_plane.ptr<uchar>(j); const uchar* data_s=s_plane.ptr<uchar>(j); const uchar* data_v=v_plane.ptr<uchar>(j); for (int i = 0; i <src.cols*src.channels(); i++) { if( data_h[i]*2<45&&data_s[i]>100&&data_v[i]>80) { src.at<uchar>(j,i)=255; } else { src.at<uchar>(j,i)=0; } } } imshow("HSV图像",dst);imshow("定位图像",src0); imshow("二值化图像",src); imwrite("D:/caeq.jpg",src); waitKey(0); return(0); }
0 0
- 通过HSV进行RGB二值化,
- hsv -> rgb
- RGB,HSV
- RGB通过转换成HSV增加明度和饱和度
- HSV to RGB and RGB to HSV
- RGB和HSV转换
- RGB与HSV转换
- RGB与HSV转换
- CvtColor RGB HSV转化
- RGB 转化 HSV代码
- C++ RGB转HSV
- 【MATLAB】RGB,HSV,LAB
- RGB-HSV转换
- RGB-HSV颜色空间
- RGB和HSV
- HSV RGB 转换
- RGB HSV HSB HSL
- RGB HLS HSV
- Unity实现滑页嵌套(解决ScrollRect嵌套冲突问题)
- JavaScript中call,apply,bind方法的总结。
- C#中的 int?是什么意思
- hdu 1151 匈牙利算法
- 数据库SQL优化大总结之 百万级数据库优化方案
- 通过HSV进行RGB二值化,
- 偷天换日:网络劫持,网页js被伪装替换。
- 【chgrp】修改文件属组
- apktool反编译apk,提取资源文件
- 基于QtQuick2.0开发的诸多漂亮的界面例子(作为入门首选)
- DevExpress控件使用小结
- hdu 1179 匈牙利算法
- 实现界面的跳转
- Android系统定位获取经纬度