前提条件
使用工具python3.x 使用库numpy;opencv,
api简介
1.cv.add(s1,s2) s1,s2为cv.imread函数返回的对象,表示将s1和s2的像素进行相加,函数会返回一个对象。可以通过cv.imshow显示出图片进行直观感受。 2.cv.subtract(s1,s2) 将s1和s2的像素进行相减,函数会返回一个对象 3.cv.multiply(s1,s2) 将s1和s2的像素进行相乘,函数会返回一个对象 4.cv.divide(s1,s2) 将s1和s2的像素进行相除,函数会返回一个对象 5.cv.meanStdDev(s1) 求图片的均值和方差(对比度),s1为cv.imread函数返回的对象,具体看代码
代码实例
import cv2 as cvimport numpy as npdef addDemo(s1, s2): #像素相加 dst = cv.add(s1, s2) cv.imshow('addDemo',dst)def subtractDemo(s1, s2): #像素相减 dst = cv.subtract(s1, s2) cv.imshow('subtractDemo',dst)def divideDemo(s1, s2): #像素相对除 dst = cv.divide(s1, s2) cv.imshow('divideDemo',dst)def multiplyDemo(s1, s2): #像素相乘 dst = cv.multiply(s1, s2) cv.imshow('multiplyDemo',dst)def others(m1, m2): #其他类型运算 # M1 = cv.mean(m1) #求均值 # M2 = cv.mean(m2) # print(M1) #输出三个通道的平均像素值 # print(M2) M1, dev1 = cv.meanStdDev(m1) #求均值和方差(对比度) M2, dev2 = cv.meanStdDev(m2) h, w = m1.shape[:2] #m1为图片数组,shape[:2]表示将图片数组切割为0,1,然后赋给h,w print(M1,M2,dev1,dev2) #直观感受 均值和方差效果,应用在比如:扫描仪有没有扫出信息 img = np.zeros([h, w], np.uint8) m, dev = cv.meanStdDev(img) print(m) print(dev)src1=cv.imread("D:/openCV_image/image/19_1.png")src2=cv.imread("D:/openCV_image/image/19_2.png")# cv.namedWindow("input image",cv.WINDOW_AUTOSIZE)print(src1.shape,src2.shape)cv.imshow("image1",src1)cv.imshow("image2",src2)# addDemo(src1, src2) #两张图片像素值相加# subtractDemo(src1, src2) #两张图片像素值相减# divideDemo(src1, src2) #两张图片像素值相除# multiplyDemo(src1, src2) #两张图片像素值相乘others(src1, src2)cv.waitKey(0)cv.destroyAllWindows()
查看更多关于Python opencv(二) 像素运算(一)的详细内容...
声明:本文来自网络,不代表【好得很程序员自学网】立场,转载请注明出处:http://haodehen.cn/did126311