1. 读取两张大小相同的图片,才能进行像素运算,下载了OpenCV3之后就会在opencv目录中的sources/samples/data/中找到官方自带的图片。在这里我们就选择LinuxLogo.jpg与WindowsLogo.jpg进行相关的运算操作。
首先读取图片
import cv2 as cv
src1 = cv.imread("./images/WindowsLogo.jpg")
src2 = cv.imread("./images/LinuxLogo.jpg")
cv.imshow("Windows logo", src1)
cv.imshow("Linux logo", src2)
cv.waitKey(0)
cv.destoryAllWindows()
运行之后的效果如下:
查看两张图片的大小:
print(src1.shape)
print(src2.shape)
运行结果如下:
2. 调用cv2.add()函数对两张图片进行叠加,如果两张图片相加之后,像素大于255,就截断为255。示例代码如下:
import cv2 as cv
print("-------------2020/4/21 像素运算操作")
src1 = cv.imread("./images/WindowsLogo.jpg")
src2 = cv.imread("./images/LinuxLogo.jpg")
def add_image_demo(image1, image2):
dst = cv.add(image1, image1)
cv.imshow("dst logo", dst)
add_image_demo(src1, src2)
cv.waitKey(0)
cv.destroyAllWindows()
运行程序之后的效果如下:
3.调用cv.subtract()函数对两张图片进行相减操作(src2-src1),示例代码如下:
如果两张图片相减之后的像素值为负值,就截断为0,即为黑色。
import cv2 as cv
print("-------------2020/4/21 像素运算操作")
src1 = cv.imread("./images/WindowsLogo.jpg")
src2 = cv.imread("./images/LinuxLogo.jpg")
def subtract_image_demo(image1, image2):
sub_dst = cv.subtract(image1, image2)
cv.imshow("subtract image", sub_dst)
subtract_image_demo(src1,src2)
cv.waitKey(0)
cv.destroyAllWindows()
4.如果src1-src2的话效果如下:
5. 对图片做相除操作,示例代码如下:
import cv2 as cv
src1 = cv.imread("./images/WindowsLogo.jpg")
src2 = cv.imread("./images/LinuxLogo.jpg")
def divide_image_demo(image1, image2):
divide_dst = cv.divide(image1, image2)
cv.imshow("divide image", divide_dst)
divide_image_demo(src2, src1)
cv.waitKey(0)
cv.destroyAllWindows()
6. 调用cv.multiply()函数对图片进行像素进行相乘操作,示例代码如下:
import cv2 as cv
print("-------------2020/4/21 像素运算操作")
src1 = cv.imread("./images/WindowsLogo.jpg")
src2 = cv.imread("./images/LinuxLogo.jpg")
def multiply_image_demo(image1, image2):
divide_dst = cv.multiply(image1, image2)
cv.imshow("divide image", divide_dst)
multiply_image_demo(src2, src1)
cv.waitKey(0)
cv.destroyAllWindows()
7. 求均值函数cv2.mean(),求方差函数cv2.meanStdDev()
import cv2 as cv
print("-------------2020/4/21 像素运算操作")
src1 = cv.imread("./images/WindowsLogo.jpg")
src2 = cv.imread("./images/LinuxLogo.jpg")
def others_demo(image1, image2):
m1 = cv.mean(image1)
m2 = cv.mean(image2)
print("M1: %s,M2: %s"%(m1,m2))
others_demo(src1, src2)
cv.waitKey(0)
cv.destroyAllWindows()