Opencv学习

1.Inrange:二值化处理,如果在阈值内则像素值为255,否则为0

Mat image;
Mat hsv
cvtColor(image,hsv,COLOR_BGR2HSV);
Mat mask;
inRange(hsv,Scalar(35,43,46),Scalar(77,255,255),mask);

Mat redback = Mat::zeros(image.size(),image.type());
redback = Scalar(40,40,200);
bitwise_not(mask,mask);
imshow("mask",mask);
image.copyTo(redback,mask);
inshow("区域提取",redback);

2.像素统计

double minV,maxV;
Point minLoc,maxLoc;
std::vector<Mat> mv;
split(image,mv);
for(Mat v : mv){
	minMaxLoc(v,&minV,&maxV,&minLoc,&maxLoc,Mat());
} 
Mat mean,stddev; //均值和方差
meanStdDev(image,mean,stddev);

3.加权融合

addWeighted

4.随机数

Mat canvas;
Rgn rgn(1234);
int x = rgn.uniform(最小值,最大值);
//如果一次只显示一条直线,则背景色设置为黑色,否则不对背景色设置
canvas = Scalar(0,0,0);

5.多边形绘制与填充

fillpoly 填充
polyline 绘制
drawContours 既绘制又填充

5.鼠标点击事件

cv::SetMouseCallBack
cv::MouseCallback(int event,int x,int y,int flag,void *usedata);

6.图形的缩放
图形的缩放是通过对图形矩阵的差值来实现图片的缩放的

======opencv vs出错点总结
1.imread读取图片出错
解决方法:在Debug配置下编译时,在添加依赖库时,将".lib"放在了"d.lib"之前的原因造成的,将"d.lib"删除之后,就读取成功了。
2.无法识别SURF模块
解决方案:是放在附加模块里的,需要联合编译,参考解决方案:opencv安装和配置完整版教程

部分内容参考Opencv学堂

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

MSDN_lsx

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值