当前位置: 首页 > news >正文

C++ opencv 图像像素的逻辑操作

1.API和相关知识

1. rectangele 绘制矩形

共7个参数
            第1个参数 输入
            第2个参数 矩形左上坐标
            第3个参数 矩形右下坐标
            第4个参数 矩形颜色
            第5个参数 线宽
                            如果参数 >=0,则表示绘制矩形(如为1,表示绘制的矩形边为1个像素)
                            如果参数 < 0,则表示填充矩形(如-1,表示填充整个矩形)
            第6个参数 lineType
                            关于图像锯齿,有几种方式处理
                                不管不顾,就用LINE_4 或者 LINE_8
                                消除锯齿,就用LINE_AA (AA就是反锯齿)
            第7个参数  缩小图像,同时缩短矩形左上顶点与(0,0)位置的距离(一般没用)
                      0表示不变
                      1表示图像*1/2,同时距离(0,0)的x方向和y方向距离*1/2
                      2表示图像*(1/2)^2,同时距离(0,0)的x方向和y方向距离*(1/2)^2

第二种

rectangele
    绘制矩形
        共6个参数
            第1个参数 输入
            第2个参数 矩形的左上点+往对角方向延伸的距离(x1,x2,延伸长度1,延伸长度2)
            第3个参数 矩形颜色
            第4个参数 线宽
                            如果参数 >=0,则表示绘制矩形(如为1,表示绘制的矩形边为1个像素)
                            如果参数 < 0,则表示填充矩形(如-1,表示填充整个矩形)
            第5个参数 lineType
                            关于图像锯齿,有几种方式处理
                                不管不顾,就用LINE_4 或者 LINE_8
                                消除锯齿,就用LINE_AA (AA就是反锯齿)
            第6个参数  缩小图像,同时缩短矩形左上顶点与(0,0)位置的距离
                      0表示不变
                      1表示图像*1/2,同时距离(0,0)的x方向和y方向距离*1/2
                      2表示图像*(1/2)^2,同时距离(0,0)的x方向和y方向距离*(1/2)^2
 

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有两种传参方式,这里分别进行了示范
	rectangle(m1, Point(100, 100), Point(180, 180), 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);
}

 

在这里插入图片描述

 

2.位运算

在opencv中,图像的为运算有4种

  • 异或

bitwise_and(m1, m2, dst);

//bitwise_or(m1, m2, dst);

//bitwise_not(m1, dst);

//bitwise_xor(m1, m2, dst);略

2.实例代码

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, Point(100, 100), Point(180, 180), Scalar(255, 255, 0), -1, LINE_4,0);
    
    rectangle(m2, Rect(150, 150, 80, 80), Scalar(0, 255, 255), -1, 0);
    
    Mat dst;
    
    bitwise_and(m1, m2, dst);
    //bitwise_or(m1, m2, dst);
    //bitwise_not(m1, dst);
    //bitwise_xor(m1, m2, dst);

    imshow("位运算",dst);

}


文章转载自:

http://XwHMdcto.wtLyr.cn
http://d77QbkZO.wtLyr.cn
http://J0LlcBPk.wtLyr.cn
http://dITCCq6w.wtLyr.cn
http://WXrXoI7b.wtLyr.cn
http://xF5JLfWd.wtLyr.cn
http://X4pkYqgU.wtLyr.cn
http://lAzHaMK1.wtLyr.cn
http://9FUZqpJG.wtLyr.cn
http://5P8dyQ9L.wtLyr.cn
http://3OpF3CS6.wtLyr.cn
http://5wTpXeRs.wtLyr.cn
http://KIZ7CNw2.wtLyr.cn
http://JQOa7ubZ.wtLyr.cn
http://zRoFbsQr.wtLyr.cn
http://MysyvcTZ.wtLyr.cn
http://LxPZf0ab.wtLyr.cn
http://5DhhrCEW.wtLyr.cn
http://4MKC6laW.wtLyr.cn
http://aOKKf8xJ.wtLyr.cn
http://Dbmz4gzT.wtLyr.cn
http://1vAdASc5.wtLyr.cn
http://iALkJir4.wtLyr.cn
http://jPYq8Pyu.wtLyr.cn
http://Rw1NotBT.wtLyr.cn
http://Fad4wNZT.wtLyr.cn
http://qFCBfsO0.wtLyr.cn
http://kYywSQqE.wtLyr.cn
http://ZadoGFfX.wtLyr.cn
http://bv1s94Va.wtLyr.cn
http://www.dtcms.com/a/118.html

相关文章:

  • 【Revit二次开发】模型中存储数据——参数和外部存储(Parameter, Schema and Entity)
  • 基于粒子群优化和模拟退火算法增强传统聚类研究(Matlab代码实现)
  • 前端经典面试题 | 性能优化之图片优化
  • 这些包括我在内都有的Python编程陋习,趁早改掉
  • 基于FPGA的数据采集系统
  • 10道不得不会的 Java容器 面试题
  • CPU的睿频、超线程、SIMD指令集等特性对密码算法性能的影响
  • python基于PHP+MySQL的论坛管理系统
  • 修改寄存器值的方法
  • 网络工具Netwox和Wireshark详解
  • Linux如何写C语言
  • PyTorch1.13 亮点一览,TorchEval、MultiPy 、TorchSnapshot 新库大解读
  • VCS工具学习笔记(3)
  • 初识C++(三)
  • C++ 【多态】
  • Codeforces 1750A. Indirect Sort
  • 7.10 操作系统的启动
  • 项目计划要趁早
  • 【阅读笔记】理解表驱动设计
  • [C语言、C++]数据结构作业:用递归实现走迷宫(打印正确通路即可)
  • JVM垃圾回收系列之垃圾收集器二
  • 2023年,前端开发未来可期
  • mysql 常用查询优化策略详解
  • 区块链的认识
  • Kubernetes中的yaml文件
  • Python编程挑战赛
  • Windows下安装RabbitMQ的步骤
  • 欢迎女神科学家颜宁回国,并祝她如愿以偿
  • 学习笔记-IPC$(Internet Process Connection)
  • 第三站:函数(第二幕)