13.Opencv中的图像运算

13.Opencv中的图像运算1 两个图像相加 import cv2 import numpy as np img1 cv2 imread C Users Mengyang Desktop 123 png 加载图片 图的加法运算就是矩阵的运算 因此进行加法运算的两张图片的大小要相同 print img1 shape 打印图片大小信息

大家好,我是讯享网,很高兴认识大家。

1.两个图像相加

import cv2 import numpy as np img1 = cv2.imread('C:\\Users\\Mengyang\\Desktop\\123.png') #加载图片 #图的加法运算就是矩阵的运算 #因此进行加法运算的两张图片的大小要相同 print(img1.shape) #打印图片大小信息 img2 = np.ones((800,1200,3),np.uint8)*50 #每个像素全为1,乘以100 result = cv2.add(img1,img2) #两个图像相加 cv2.imshow('result',result) cv2.imshow('orig',img1) cv2.waitKey(0)

讯享网

2.两个图像相减

所用API  subtract(A,B)

含义是A-B

相加相减运算,可以使图片变亮或变暗

讯享网result = cv2.add(img1,img2) #两个图像相加,使图片变亮 img3 = cv2.subtract(result,img2) #两个图像相减,使图片变暗

3.图像乘与图像除

乘 multiply(A,B)   使加的更快

除 divide(A,B)      减的更快

4.图像的溶合

addWeighted(A,alpha,B,bate,gamma)

只有图像大小和通道数一样时才能进行融合

A:加法运算的图像A

B:加法运算的图像B

alpha和bate是A和B在溶合后的分别权重,也就是占比

gamma  静态权重,最后生成的图片所有元素加上gamma

import cv2 import numpy as np img1 = cv2.imread('C:\\Users\\Mengyang\\Desktop\\111.png') img2 = cv2.imread('C:\\Users\\Mengyang\\Desktop\\112.png') print(img1.shape) #只有图像大小和通道数一样时才能进行融合 print(img2.shape) result = cv2.addWeighted(img1,0.2,img2,0.8,0) cv2.imshow('result',result) cv2.waitKey(0)

运行结果:


讯享网 

 5.图像的位运算

5.1 与运算

bitwise_and(img1,img2)

讯享网import cv2 from cv2 import bitwise_not from cv2 import bitwise_and import numpy as np #创建一张图片 img = np.zeros((200,200),np.uint8) img1 = np.zeros((200,200),np.uint8) img[20:120,20:120] = 255 img1[80:180,80:180] = 255 cv2.imshow('img',img) cv2.imshow('img1',img1) #new_img = bitwise_not(img) #图像非运算 new_img = bitwise_and(img,img1) cv2.imshow('new_img',new_img) cv2.waitKey(0)

运算结果:

 

5.2 或运算

bitwise_or(img1,img2)

new_img = cv2.bitwise_or(img,img1) #图像或运算

运行结果:

  

5.3 非运算

bitwise_not(img)

讯享网import cv2 from cv2 import bitwise_not import numpy as np #创建一张图片 img = np.zeros((200,200),np.uint8) img[50:150,50:150] = 255 cv2.imshow('img',img) new_img = bitwise_not(img) #图像非运算 cv2.imshow('new_img',new_img) cv2.waitKey(0)

运行结果:

 

5.4 异或运算

bitwise_xor(img1,img2)

import cv2 import numpy as np #创建一张图片 img = np.zeros((200,200),np.uint8) img1 = np.zeros((200,200),np.uint8) img[20:120,20:120] = 255 img1[80:180,80:180] = 255 cv2.imshow('img',img) cv2.imshow('img1',img1) #new_img = bitwise_not(img) #图像非运算 #new_img = cv2.bitwise_and(img,img1) #图像与运算 #new_img = cv2.bitwise_or(img,img1) #图像或运算 new_img = cv2.bitwise_xor(img,img1) #图像异或运算 cv2.imshow('new_img',new_img) cv2.waitKey(0)

 

小讯
上一篇 2025-01-27 19:39
下一篇 2025-01-06 07:24

相关推荐

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/59195.html