当前位置:网站首页>opencv学习(4)之色彩转换 处理 图像绘制 随机数
opencv学习(4)之色彩转换 处理 图像绘制 随机数
2022-07-19 05:12:00 【@[email protected]】
目录
1.色彩转换cvtcolor 去背景
//hsv空间由 hs控制,如果背景颜色单一,应该使用hsv去控制
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);
//对mask取反
bitwise_not(mask, mask);
imshow("mask", mask);
//只拷贝mask为1的区域
image.copyTo(redback, mask);
imshow("roi区域提取", redback);
2.图像绘制
//矩形
Rect rect;
//初始坐标
rect.x = 100;
rect.y = 100;
//矩形大小
rect.width = 250;
rect.height = 300;
Mat bg = Mat::zeros(image.size(), image.type());
//绘制矩形 第四个参数小于0就是填充大于0就是线宽 8是线型(默认·)
rectangle(bg, rect, Scalar(0, 0, 255), -1, 8, 0);
//绘制圆 圆心Point(350, 400) 半径:15 颜色控制:Scalar(255, 0, 0)b g r
circle(bg, Point(350, 400), 15, Scalar(255, 0, 0), -1, 8, 0);
//绘制线
line(bg, Point(100, 100), Point(350, 400), Scalar(0, 255, 0), 4, LINE_AA, 0);
//旋转矩形(RotatedRect)
RotatedRect rrt;
rrt.center = Point(200, 200);
rrt.size = Size(100, 200);
rrt.angle = 90.0;
//椭圆
ellipse(bg, rrt, Scalar(0, 255, 255), 2, 8);
Mat dst;
//图像相加
beta, double gamma, CvArr* dst );
/*
参数1:src1,第一个原数组.
参数2:alpha,第一个数组元素权重
参数3:src2第二个原数组
参数4:beta,第二个数组元素权重
参数5:gamma,图1与图2作和后添加的数值。不要太大,不然图片一片白。总和等于255以上就是纯白色了。
参数6:dst,输出图片
*/
addWeighted(image, 0.7, bg, 0.3, 0, dst);
imshow("绘制演示", bg);
3.随机数
Mat canvas = Mat::zeros(Size(512, 512), CV_8UC3);
int w = canvas.cols;
int h = canvas.rows;
//随机种子
RNG rng(12345);
while (true) {
int c = waitKey(10);
if (c == 27) { // 退出
break;
}
//产生0-w的数据
int x1 = rng.uniform(0, w);
int y1 = rng.uniform(0, h);
int x2 = rng.uniform(0, w);
int y2 = rng.uniform(0, h);
int b = rng.uniform(0, 255);
int g = rng.uniform(0, 255);
int r = rng.uniform(0, 255);
// canvas = Scalar(0, 0, 0);
line(canvas, Point(x1, y1), Point(x2, y2), Scalar(b, g, r), 1, LINE_AA, 0);
imshow("随机绘制演示", canvas);
}
4.多边形绘制
//定义点,存储在一个数组里面,将这个数组存储在另一个数组成为二维数组,进行绘制
//画布
Mat canvas = Mat::zeros(Size(512, 512), CV_8UC3);
int w = canvas.cols;
int h = canvas.rows;
Point p1(100, 100);
Point p2(300, 150);
Point p3(300, 350);
Point p4(250, 450);
Point p5(50, 450);
std::vector<Point> pts;
pts.push_back(p1);
pts.push_back(p2);
pts.push_back(p3);
pts.push_back(p3);
pts.push_back(p4);
pts.push_back(p5);
//-1是无法填充的
// polylines(canvas, pts, true, Scalar(0, 255, 0), -1, 8, 0); //绘制多边形
//
std::vector<std::vector<Point>> contours;
contours.push_back(pts);
//可以绘制多个多边形 绘制填充 -1
drawContours(canvas, contours, 0, Scalar(0, 0, 255), -1, 8);
imshow("绘制多边形", canvas);
版权声明
本文为[@[email protected]]所创,转载请带上原文链接,感谢
https://blog.csdn.net/m0_46392035/article/details/125828303
边栏推荐
- 对于因果模型的常见评估函数:SHD 和 FDR
- Summary of margin consolidation issues
- 【Mindspore1.1】【BatchNorm / GradOperation】测试模块infer_backward,求解答
- Introduction of custom icons in uniapp
- 微信小程序获取uni.showActionSheet中选择的值
- uni-app. Develop wechat applet to realize message subscription
- torch的使用须知
- [introduction to Thesis] self supervised learning with data augmentationsprovably isolates content from style
- 单片机1-流水灯的拓展
- YOLOv2详解
猜你喜欢
解决QT不能发现QT平台插件
js Qrcode.js实现文字内容通过二维码展示
gan01
【论文导读】Causal Protein-Signaling Networks Derived from Multiparameter Single-Cell Data
Introduction of custom icons in uniapp
【vscode进阶初步】vscode debug
Responsive layout [responsive] and adaptive layout [adaptive], single page [spa] and multi page [MPa]
YOLOv2详解
torch的使用须知
图像中目标的绝对位置信息(1)--How much Position Information Do Convolutional Neural Networks Encode
随机推荐
【ECCV2020】文章、代码和数据链接
使用SQL语句创建并管理数据库
fast rcnn和faster rcnn
mindspore《实现一个图片分类应用》 运行错误
yolov4和v5
Résoudre Qt ne peut pas découvrir le plug - in de la plateforme Qt
Array common methods, principle simulation, and high order of common functions
LSTM practice, NLP emotion analysis (kaggle)
js Qrcode. JS to display text content through QR code
【MindSpore】【MindIR】MindSpore如何进行MindIR推理呢
Redis data type and underlying data structure
Notes on collective declaration of variables
Mindspore依赖库找不到
语义分割介绍和FCN
Golang: some operations that are easy to misunderstand
【A800-9000】【MindSpore Ascend 910版本】安装后官方mindspore测试程序报错
yolov1
Power learning (1) - power system test
【深度学习】-Imdb数据集情感分析之模型对比(3)- CNN
uniapp 微信小程序分享、分享朋友圈功能