opencv常用函数一览

腐蚀

Mat element = getStructuringElement(MORPH_RECT,Size(15,15));
erode(srcImage,dstImage,element);

element是获取自定义的核

膨胀

dilate(srcImage,dstImag,element);

滤波

均值滤波

blur(srcImage,dstImage,Size(w,h));

这里有必要介绍一下Size类,Size模板内部重载了一些构造函数,最常用的是Size(width,height);这里是代表的是滤波的内核大小,值得注意的是wh的值只能取奇数

高斯滤波

GaussianBlur(srcImage,dstImage,Size(w,h));

高斯滤波是最常用的滤波方式,高斯低同就是模糊,高斯高通就是锐化

边缘检测

Canny(srcImage,dstImage,threshold1,threshold2,3);

低于阈值1的像素点会被认为不是边缘;

高于阈值2的像素点会被认为是边缘;

在阈值1和阈值2之间的像素点,若与第2步得到的边缘像素点相邻,则被认为是边缘,否则被认为不是边缘

最后一个为尺寸参数,默认为3

颜色空间转换

cvtColor(srcImage,dstImage,int code);

code代表宏定义的7标识符,在opencv2下,RGB转HLS空间的code为CV_RGB2HLS

通道分离

split(srcImage,Mat *channels);

具体用法如下:

Mat channels[3];
Mat imageBlueChannel;
Mat imageGreenChannel;
Mat imageRedChannel;
split(srcImage,channels);
imageBlueChannel = channels[0];
imageGreenChannel = channels[1];
imageRedChannel = channels[2];

颜色抓取

分两步,先将RGB空间,转化为HSV空间

cvtColor(srcImage,Image_HSV,CV_BGR2HSV);

再用inRange函数二值化

inRange(Image_HSV,Scalar(),Scalar(),dstImage);

第一个Scalar取所选颜色的最低阈值,第二个Scalar取所选颜色的最高阈值

绿
hmin0000|15611263578100125
hmax18018018010|18025347799124155
smin00043434343434343
smax2554330255255255255255255255
vmin04622146464646464646
vmax46220255255255255255255255255

直线绘制

void cvLine( srcImgae,point1,point2,color,thickness,shift);

第一个参数:若为RGB三通道的图像,则可以显示彩色线条

第二个参数:起始绘制点,用point类来表示

第三个参数:结束绘制点

第四个参数:线条颜色,用scalar()表示

第五个参数:线条粗细

第六个参数:小数点位数

标准霍夫变换

HoughLines(srcImage,dstImage,rho,theta,threshold,0,0);

第三个参数:以像素为单位的距离精度

第四个参数:以弧度为单位的角度精度

第五个参数:阈值参数

像素的读取和赋值

image.at<uchar>(i,j)[channel];

i是行数,j是列数,channel为通道数

注意:i的范围是0-(image.rows-1)

​ j的范围是0-(image.cols-1)

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值