1500字范文,内容丰富有趣,写作好帮手!
1500字范文 > OpenCV 学习笔记-day10 图像像素的逻辑操作 (Opencv中rectangle函数与Rect函数的

OpenCV 学习笔记-day10 图像像素的逻辑操作 (Opencv中rectangle函数与Rect函数的

时间:2022-09-30 21:46:57

相关推荐

OpenCV 学习笔记-day10 图像像素的逻辑操作 (Opencv中rectangle函数与Rect函数的

OpenCV 学习笔记

day10-图像像素的逻辑操作1. 画矩形函数rectangle();Rect()函数是画出图像中的矩形2. 位操作函数bitwise_and(m1, m2, dst);//与bitwise_or(m1, m2, dst);//或bitwise_not(m1,dst);//非 取反操作bitwise_xor(m1,m2,dst);//异或代码显示效果

day10-图像像素的逻辑操作

1. 画矩形

函数

rectangle();

函数是用来绘制一个矩形(框)的,通常用在图片的标记上

//定义1CV_EXPORTS_W void rectangle(InputOutputArray img, Point pt1, Point pt2,const Scalar& color, int thickness = 1,int lineType = LINE_8, int shift = 0);

例1

rectangle(img2, Point(j,i), Point(j + img4.cols, i + img4.rows), Scalar(255, 255, 0), 2, 8);

//定义2CV_EXPORTS void rectangle(CV_IN_OUT Mat& img, Rect rec,const Scalar& color, int thickness = 1,int lineType = LINE_8, int shift = 0);

参数说明

1.

Rect()函数是画出图像中的矩形

Rect()(int x, int y, int width, int height);

参数含义:

Rect(左上角x坐标 , 左上角y坐标,矩形的宽,矩形的高)

例2

rectangle(m1,Rect(100,100,80,80),Scalar(255,255,0),-1,LINE_8,0);

例3

Rect(100,100,80,80);//左上角坐标 x,y(100,100) //size 80*80

补充:

//如果创建一个Rect对象rect(100, 50, 50, 100),那么rect会有以下几个功能: rect.area();//返回rect的面积 5000 rect.size();//返回rect的尺寸 [50 × 100] rect.tl(); //返回rect的左上顶点的坐标 [100, 50] rect.br(); //返回rect的右下顶点的坐标 [150, 150] rect.width(); //返回rect的宽度 50 rect.height(); //返回rect的高度 100 rect.contains(Point(x, y)); //返回布尔变量,判断rect是否包含Point(x, y)点 //还可以求两个矩形的交集和并集 rect = rect1 & rect2; rect = rect1 | rect2; //还可以对矩形进行平移和缩放 rect = rect + Point(-100, 100); //平移,也就是左上顶点的x坐标-100,y坐标+100 rect = rect + Size(-100, 100); //缩放,左上顶点不变,宽度-100,高度+100 //还可以对矩形进行对比,返回布尔变量 rect1 == rect2; rect1 != rect2;

2. 位操作

函数

bitwise_and(m1, m2, dst);//与

bitwise_or(m1, m2, dst);//或

bitwise_not(m1,dst);//非 取反操作

bitwise_xor(m1,m2,dst);//异或

代码

quickopencv.h

#pragma once#include <opencv2\highgui.hpp>#include <opencv2\imgproc.hpp>using namespace cv;//定义类class QuickDemo{public:void colorSpace_Demo(Mat &image);//色彩空间转换函数-12-24void mat_creation_demo(Mat &image);//Mat对象与创建-12-27void pixel_vist_Demo(Mat &image);//图像像素的读写操作-1-3void operators_demo(Mat &image);//图像像素的算数操作-1-4void tracking_bar_demo(Mat &image);//滚动条操作演示-1-7void key_demo(Mat &image);//键盘响应操作-1-12void color_style_demo(Mat &image);//OpenCV自带颜色表操作-1-12void bitwise_demo(Mat &image);//位操作(逻辑操作)-1-17};

QuickDemo.cpp

#include <opencv2\highgui.hpp>#include <opencv2\imgproc.hpp>#include<quickopencv.h>#include <iostream>void QuickDemo::bitwise_demo(Mat &image){//画矩形Mat m1 = Mat::zeros(Size(256, 256), CV_8UC3);Mat m2 = Mat::zeros(Size(256, 256), CV_8UC3);rectangle(m1,Rect(100,100,80,80),Scalar(255,255,0),-1,LINE_8,0);rectangle(m2, Rect(150, 150, 80, 80), Scalar(0, 255, 255), -1, LINE_8, 0);imshow("m1", m1);//显示结果1imshow("m2", m2);//显示结果2//位操作Mat dst;//bitwise_and(m1, m2, dst);//与//显示结果3//bitwise_or(m1, m2, dst);//或//显示结果4//bitwise_not(m1,dst);//非 取反操作//显示结果5bitwise_xor(m1,m2,dst);//异或//显示结果6imshow("像素位操作", dst);}

OpencvTest.cpp

#include <iostream>#include <opencv2\highgui.hpp>#include <opencv2\imgproc.hpp>#include<quickopencv.h>using namespace cv;using namespace std;int main(){QuickDemo qd;qd.bitwise_demo(scr);waitKey(0);return 0;}

显示效果

显示结果1

显示结果2

显示结果3

显示结果4

显示结果5

显示结果6

OpenCV 学习笔记-day10 图像像素的逻辑操作 (Opencv中rectangle函数与Rect函数的用法以及位相关操作)

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。