數(shù)值運(yùn)算
代碼:
# -*- coding=GBK -*-
import cv2 as cv
# 數(shù)值運(yùn)算:加減乘除
def shu_image(src11, src22):
src = cv.add(src11, src22) # 加 : 圖像對應(yīng)像素值相加,> 255 時取255
cv.namedWindow("add",0)
cv.resizeWindow("add", 300, 300) # 設(shè)置播放窗口長和寬
cv.imshow("add", src)
src = cv.subtract(src11, src22) # 減 : 圖像對應(yīng)像素值相減, 0 時取0
cv.namedWindow("subtract", 0)
cv.resizeWindow("subtract", 300, 300)
cv.imshow("subtract", src)
src = cv.multiply(src11, src22) # 乘 : 圖像對應(yīng)像素值相乘,> 255 時取255
cv.namedWindow("multiply", 0)
cv.resizeWindow("multiply", 300, 300)
cv.imshow("multiply", src)
src = cv.divide(src11, src22) # 除 : 圖像對應(yīng)像素值相除,a( > 0) / 0 = 255
cv.namedWindow("divide", 0)
cv.resizeWindow("divide", 300, 300)
cv.imshow("divide", src)
src1 = cv.imread("jueduisiwang.bmp")
src2 = cv.imread("fuchoutianshi.bmp")
cv.namedWindow("src1", 0)
cv.resizeWindow("src1", 300, 300)
cv.imshow("src1", src1)
src2 = src2[:,:30,:] # 兩張圖片尺寸大小要一樣,不然就需要調(diào)整
cv.namedWindow("src2", 0)
cv.resizeWindow("src2", 300, 300)
cv.imshow("src2", src2)
shu_image(src1, src2)
cv.waitKey(0)
cv.destroyAllWindows()
結(jié)果:
![](/d/20211017/602e3f70d412988399b868637a466992.gif)
邏輯運(yùn)算
代碼:
# -*- coding=GBK -*-
import cv2 as cv
# 邏輯運(yùn)算:與或非的操作
def luo_image(src1, src2):
src = cv.bitwise_and(src1, src2)
cv.namedWindow("AND", 0)
cv.resizeWindow("AND", 300, 300)
cv.imshow("AND", src)
src = cv.bitwise_or(src1, src2)
cv.namedWindow("OR", 0)
cv.resizeWindow("OR", 300, 300)
cv.imshow("OR", src)
src = cv.bitwise_not(src1)
cv.namedWindow("NOR", 0)
cv.resizeWindow("NOR", 300, 300)
cv.imshow("NOR", src)
src = cv.bitwise_xor(src1, src2)
cv.namedWindow("XOR", 0)
cv.resizeWindow("XOR", 300, 300)
cv.imshow("XOR", src)
src1 = cv.imread("jueduisiwang.bmp")
src2 = cv.imread("fuchoutianshi.bmp")
cv.namedWindow("src1", 0)
cv.resizeWindow("src1", 300, 300)
cv.imshow("src1", src1)
src2 = src2[:,:30,:] # 兩張圖片尺寸大小要一樣,不然就需要調(diào)整
cv.namedWindow("src2", 0)
cv.resizeWindow("src2", 300, 300)
cv.imshow("src2", src2)
luo_image(src1, src2)
cv.waitKey(0)
cv.destroyAllWindows()
結(jié)果(不太具有參考價值):
![](/d/20211017/5fbb0dd4bafc2696a6b9139e45ba916f.gif)
備注:
圖像的邏輯或運(yùn)算就是255-對應(yīng)通道像素值,也就是“取反”操作(黑白圖就是黑變白,白變黑)
黑白圖和同尺寸任意圖的邏輯或運(yùn)算就是加法運(yùn)算
黑白圖和同尺寸任意圖的邏輯與運(yùn)算就是黑白圖的黑白像素值互換然后與同尺寸任意圖做加法運(yùn)算
而彩色圖之間的邏輯運(yùn)算關(guān)系感覺太復(fù)雜了,沒搞懂 : (
到此這篇關(guān)于淺談Python實(shí)現(xiàn)opencv之圖片色素的數(shù)值運(yùn)算和邏輯運(yùn)算的文章就介紹到這了,更多相關(guān)圖片色素的數(shù)值運(yùn)算和邏輯運(yùn)算內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
您可能感興趣的文章:- Python-OpenCV教程之圖像的位運(yùn)算詳解
- Python OpenCV處理圖像之濾鏡和圖像運(yùn)算
- Python-openCV開運(yùn)算實(shí)例
- 詳解python opencv圖像混合算術(shù)運(yùn)算