zl程序教程

您现在的位置是:首页 >  后端

当前栏目

在OpenCV里实现负片函数imcomplement

Opencv 实现 函数
2023-09-14 09:10:32 时间

大家要是使用过MATLAB,要想取得负片就会使用到这个imcomplement函数,这个函数就是对图像进行取反的动作,比如灰度为0,负片运算之后就是255了,同理255转为0。下面使用OpenCV来实现相关的功能,这里采用查找表的方式,以便提高计算速度,例子如下:

#python 3.7.4,opencv4.1
#蔡军生 https://blog.csdn.net/caimouse/article/details/51749579
#
import numpy as np
import cv2
from matplotlib import pyplot as plt

#负片计算函数
def imcomplement(img):
    table = np.array([255-i for i in np.arange(0, 256)]).astype("uint8")    
    return cv2.LUT(img, table) #使用OpenCV的查找表函数

x = np.array([[255, 10, 75],
              [44, 225, 100]],np.uint8)
x = imcomplement(x)
print(x)

img = cv2.imread('imc1.png')
img1 = imcomplement(img)

img2 = cv2.imread('imc2.png')
img3 = imcomplement(img2)
#
cv2.imshow('img', img)
cv2.imshow('img1', img1)

cv2.imshow('img2', img2)
cv2.imshow('img3', img3)
#
cv2.waitKey(0)
c