opencv常用图像处理函数(C++)

Opencv常用图像处理函数(C++)

1、图像翻转

//src:输入图片;dst:输出图片;flipCode >0: 沿y-轴翻转, 0: 沿x-轴翻转, <0: x、y轴同时翻转
cv::Mat src;
cv::Mat dst;
int flipCode;
cv::flip(src, dst, flipCode);

2、图像的旋转

第一步,根据旋转中心和旋转角度获取旋转矩阵

//center:旋转中心点;angle:旋转角度;scale:缩放因子
cv::Point2f center(x, y);
double angle;
double scale;
cv::getRotationMatrix2D(center, angle, scale);

第二步,根据旋转矩阵进行仿射变换,实现图像旋转

cv::Mat M = cv::getRotationMatrix2D(center, angle, 1);
//dsize:指定输出图像dst的尺寸
cv::Size dsize;
cv::warpAffine(src, dst, M, dsize);

3、空间颜色转换

//code:颜色映射码,格式为cv_src颜色空间2dst颜色空间,如CV_BGR2GRAY;dstCn:目标图像通道数,取0则由src和code决定
void cv::cvtColor(const cv::Mat &src, cv::Mat &dst, int code, int dstCn = 0 );

4、图像通道的分离与合并

//分离
vector<cv::Mat> channels;
cv::split(src, channels);
//合并
cv::merge(channels, dst);

5、图像平滑(常见滤波器)

//取ksize为5x5
//blur()函数:均值滤波,用ksize内像素的平均灰度值来代替中心点的灰度值
cv::blur(src, dst, cv::Size(5, 5));
//medianBlur()函数:中值滤波,用ksize内所有像素的中值代替中心点的灰度值
cv::medianBlur(src, dst, 5);
//GaussianBlur()函数:高斯滤波,ksize内的像素根据与中心点像素的位置关系被赋予不同的权值
double sigmaX;//高斯核函数在X方向的的标准偏差
double sigmaY;//高斯核函数在Y方向的的标准偏差,若sigmaY=0,则设为sigmaX,若sigmaX和sigmaY都是0则由ksize的宽高计算得出
cv::GaussianBlur(src, dst, cv::Size(5, 5), sigmaX, sigmaY);
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值