当前位置:网站首页>二:OpenCV图片叠加逻辑运算
二:OpenCV图片叠加逻辑运算
2022-08-05 11:55:00 【fplei】
通过图片叠加逻辑运算可以实现多种效果,如模版截取感兴趣区域,图片融合,色彩交叉等,本文涉及4个图片矩阵叠加逻辑运算函数,如下:
1.bitwise_and
2.bitwise_or
3.bitwise_not
4.bitwise_xor
1.函数bitwise_and
定义:
void bitwise_and(InputArray src1, InputArray src2,OutputArray dst, InputArray mask = noArray());
def bitwise_and(src1, src2, dst=None, mask=None)
参数:
src1:输入图像或矩阵1
src2:输入图像或矩阵2
dst:输出图像
mask:掩码,通常采用默认值
作用:将两幅图像进行与运算。
使用案例
#python code:
import cv2
image_mat1=cv2.imread(image1path)
image_mat1=cv2.threshold(image_mat1, 0, 255, cv2.THRESH_BINARY + cv2.THRESH_OTSU)
image_mat2=cv2.imread(image2path)
image_mat2=cv2.threshold(image_mat2, 0, 255, cv2.THRESH_BINARY + cv2.THRESH_OTSU)
res = cv2.bitwise_and(image_mat1, image_mat2)
plt.figure("bitwise_and")
plt.title("bitwise_and")
plt.imshow(res)
plt.show()
#C code:
#include <opencv2/opencv.hpp>
using namespace cv;
using namespace std;
int main(int argc, char** argv)
{
Mat src1 = imread("xxx/x1.jpg", 1);
Mat src2 = imread("xxx/x2.jpg", 1);
Mat andMat;
bitwise_and(src1, src2, andMat);
namedWindow("andMat", 0);
imshow("andMat", andMat);
waitKey(0);
return 0;
}
效果如下
2.函数bitwise_or
定义:
void bitwise_or(InputArray src1, InputArray src2,OutputArray dst, InputArray mask = noArray());
def bitwise_or(src1, src2, dst=None, mask=None)
参数:
src1:输入图像或矩阵1
src2:输入图像或矩阵2
dst:输出图像
mask:掩码,通常采用默认值
作用:将两幅图像进行或运算。
使用案例
#python code:
import cv2
image_mat1=cv2.imread(image1path)
image_mat1=cv2.threshold(image_mat1, 0, 255, cv2.THRESH_BINARY + cv2.THRESH_OTSU)
image_mat2=cv2.imread(image2path)
image_mat2=cv2.threshold(image_mat2, 0, 255, cv2.THRESH_BINARY + cv2.THRESH_OTSU)
res = cv2.bitwise_or(image_mat1, image_mat2)
plt.figure("res_bitwise_or")
plt.title("res_bitwise_or")
plt.imshow(res)
plt.show()
#C code
#include <opencv2/opencv.hpp>
using namespace cv;
using namespace std;
int main(int argc, char** argv)
{
Mat src1 = imread("e:/TestImage/4.png", 1);
Mat src2 = imread("e:/TestImage/6.png", 1);
Mat orMat;
bitwise_or(src1, src2, orMat);
namedWindow("orMat", 0);
imshow("orMat", orMat);
waitKey(0);
return 0;
}
效果如下:
3.函数bitwise_not
定义:
void bitwise_not(InputArray src, OutputArray dst,InputArray mask = noArray());
def bitwise_not(src, dst=None, mask=None)
参数:
src:输入图像或矩阵1
dst:输出图像
mask:掩码,通常采用默认值
作用:将两幅图像进行非运算。
使用案例
#python code:
import cv2
image_mat1=cv2.imread(image1path)
image_mat1=cv2.threshold(image_mat1, 0, 255, cv2.THRESH_BINARY + cv2.THRESH_OTSU)
image_mat2=cv2.imread(image2path)
image_mat2=cv2.threshold(image_mat2, 0, 255, cv2.THRESH_BINARY + cv2.THRESH_OTSU)
res = cv2.bitwise_not(image_mat1, image_mat2)
plt.figure("bitwise_not")
plt.title("bitwise_not")
plt.imshow(res)
plt.show()
#C code
#include <opencv2/opencv.hpp>
using namespace cv;
using namespace std;
int main(int argc, char** argv)
{
Mat src = imread("xxx/4.jpg", 1);
Mat notMat;
bitwise_not(src, notMat);
namedWindow("notMat", 0);
imshow("notMat", notMat);
waitKey(0);
return 0;
}
效果如下
4.函数bitwise_xor
定义:
void bitwise_xor(InputArray src1, InputArray src2,OutputArray dst, InputArray mask = noArray());
def bitwise_xor(src1, src2, dst=None, mask=None)
参数说明:
src1:输入图像或矩阵1
src2:输入图像或矩阵2
dst:输出图像
mask:掩码,通常采用默认值
作用:将两幅图像进行异或运算。
使用案例:
#python code:
import cv2
image_mat1=cv2.imread(image1path)
image_mat1=cv2.threshold(image_mat1, 0, 255, cv2.THRESH_BINARY + cv2.THRESH_OTSU)
image_mat2=cv2.imread(image2path)
image_mat2=cv2.threshold(image_mat2, 0, 255, cv2.THRESH_BINARY + cv2.THRESH_OTSU)
res = cv2.bitwise_xor(image_mat1, image_mat2)
plt.figure("bitwise_xor")
plt.title("bitwise_xor")
plt.imshow(res)
plt.show()
#C code
#include <opencv2/opencv.hpp>
using namespace cv;
using namespace std;
int main(int argc, char** argv)
{
Mat src1 = imread("xxx/1.jpg", 1);
Mat src2 = imread("xxx/2.jpg", 1);
Mat xorMat;
bitwise_xor(src1, src2, xorMat);
namedWindow("xorMat", 0);
imshow("xorMat", xorMat);
waitKey(0);
return 0;
}
效果如下

文章来源>>【二:OpenCV图片叠加逻辑运算详细说明】更多使用方法本站将持续更新,欢迎Star
边栏推荐
- 解决 json.dump 报错:TypeError - Object of type xxx is not JSON serializable
- STM32H743IIT6学习笔记03——使用第三方组件FreeRTOS
- 【HMS core】【FAQ】Health Kit, Ads kit, Push Kit Typical Questions Collection 5
- WingIDE 7.2.0 远程调试
- 789. 数的范围
- A woman is the most beautiful life in the world
- 版本控制篇 | 龙智邀您共赴GOPS全球运维大会,探索大规模、敏捷、高质量、开放式的软件研发与运营之路
- 课表小程序使用攻略
- 2022.08.04_每日一题
- How about Ping An Mengwa Card Insurance?Let parents read a few ways to identify products
猜你喜欢

碘乙酰胺在Desthiobiotin-Iodoacetamide试剂中的作用?
![[供应链·案例篇]疫情影响下的全球十大零售商都做了些什么](/img/44/9ef9f86f8afb85f49aac1cce55723d.jpg)
[供应链·案例篇]疫情影响下的全球十大零售商都做了些什么

2022年6月互联网医疗领域月度观察

The memory problem is difficult to locate, that's because you don't use ASAN

食品饮料行业B2B商城系统:加速行业数字化转型,提升B2B平台交易效率

Gray value and thermal imaging understanding

深度学习(四)分析问题与调参 理论部分

没开发人员,接到开发物联网系统的活儿,干不干?

Web3 中的安全问题和防范

小家电行业供应链协同管理系统:助力企业突围市场竞争,加强供应链快速响应能力
随机推荐
关注微信公众号,自动登陆网站
Official release 2022 Nanjing Zhibo Expo is scheduled to be held in Xinzhuang National Exhibition in October
课表小程序使用攻略
广告电商系统
字节秋招二面把我干懵了,问我SYN报文什么情况下会被丢弃?
ansible-playbook配置ssh互信
C语言经典例题-求一串数中的最大数
knife4j
2022.08.01_每日一题
Zhihu asks: Can China still achieve great national rejuvenation?
今日开幕:LiveVideoStackCon 2022 音视频技术大会 上海站
isn't it?Is there anyone who can't locate the slow query problem of MySQL online?
789. 数的范围
手把手教你定位线上MySQL慢查询问题,包教包会
数据治理体系演进简介
WPF开发随笔收录-WriteableBitmap绘制高性能曲线图
C语言例题-打印日历
消息中间件汇总
面经汇总-社招-6年
The principle and application scenario of mysql master-slave synchronization