栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

opencv图像像素算术运算+逻辑运算

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

opencv图像像素算术运算+逻辑运算

1、像素的算术运算:
void QuickDemo::OperatorTest(Mat &image)
{
	Mat res;
	Mat m1 = Mat::zeros(image.size(), image.type());
	
	m1 = Scalar(50, 50, 50);
	add(image, m1, res);//加法
	imshow("add",res);
	subtract(image,m1,res);//减法
	imshow("subtract",res);
	m1 = Scalar(2,2,2);
	multiply(image, m1, res);//乘法
	imshow("multiply",res);
	divide(image, m1, res);//除法
	imshow("divide",res);
}
2、像素的逻辑运算:
void QuickDemo::bitwise_demo(Mat &image)
{
	Mat m1 = Mat::zeros(Size(4, 4), CV_8UC1);
	Mat m2 = Mat::zeros(Size(4, 4), CV_8UC1);

	m1 = Scalar(0xFF);
	m2 = Scalar(0x0F);

	std::cout << "m1的值:" << std::endl;
	std::cout << m1 << std::endl;
	std::cout << "m2的值:" << std::endl;
	std::cout << m2 << std::endl;

	Mat dst = Mat::zeros(Size(4, 4), CV_8UC1);
	bitwise_and(m1, m2, dst);
	std::cout << "逻辑与n" << dst< 

测试结果:

带颜色逻辑运算:

void QuickDemo::bitwise_demo(Mat &image)
{
	Mat m1 = Mat::zeros(Size(255, 255), CV_8UC3);
	Mat m2 = Mat::zeros(Size(255, 255), 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); imshow("m2",m2);
	Mat dst;

	bitwise_and(m1, m2, dst);
	imshow("bitwise_and", dst);
	bitwise_or(m1,m2,dst);
	imshow("bitwise_or",dst);
	bitwise_xor(m1, m2, dst);
	imshow("bitwise_xor", dst);
	bitwise_not(image,dst);
	imshow("bitwise_not", dst);

填充/绘边函数介绍:rectangle()

函数原型:
CV_EXPORTS_W void rectangle(InputOutputArray img, Rect rec,
const Scalar& color, int thickness = 1,
int lineType = LINE_8, int shift = 0);
功能:绘制一个简单的,粗的,或填充的右上矩形
矩形函数的作用是:绘制一个矩形的轮廓或填充矩形
@img:图像
@rec:填充位置/大小
@color:颜色
@thickness:组成矩形的线条的厚度。负值,比如# fill,意味着函数要画一个填充的矩形。-1代表全部填充,正值代表绘轮廓
@lineType:行类型。看LineTypes;这个是为了绘图防止轮廓锯齿现象,推荐LINE_8,LINE_AA 会很慢

enum LineTypes {
    FILLED  = -1,
    LINE_4  = 4, //!< 4-connected line
    LINE_8  = 8, //!< 8-connected line
    LINE_AA = 16 //!< antialiased line
};

@shift:点坐标中的小数位数。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/925630.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号