在python中,常用PIL及opencv读取,其中就涉及不同方式读取图片的格式不同。其中PIL.Image.open()
读取的图片为RGB图,而cv2.imread()读取图片则为BGR图。
有时我们可能还需要灰度图,因此就需要用到图像的类型转换,常用方法如下:
image = Image.open('xx.jpg')
# 转换为灰度图像
grayscale_image = image
# 将灰度图像转换为OpenCV的图像格式
gray_image_cv = cv2.cvtColor(np.array(grayscale_image), cv2.COLOR_RGB2GRAY)
#同理BGR转RGB
frame = cv2.imread('xx.jpg')
frame = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)
使用函数为:cv2.morphologyEx(img,op,kernel)
op | 描述 |
---|---|
cv2.MORPH_OPEN | 开运算,先腐蚀后膨胀的过程。该运算可以消除小黑点。在纤细点处分离物体,平滑处理较大物体边界,同时不显著改变其面积 |
cv2.MORPH_CLOSE | 闭运算,先膨胀后腐蚀的过程。该运算可消除内部小黑洞 |
cv2.MORPH_GRADIENT | 形态学梯度(梯度=膨胀-腐蚀),可突出团块的边缘,同时保留物体边缘轮廓 |
cv2.MORPH_TOPHAT | 顶帽,突出比原轮廓亮的部分 |
cv2.MORPH_BLACKHAT | 黑帽,突出比原轮廓暗的部分 |
# 具体使用方式
kernel = cv2.getStructuringElement(cv2.MORPH_ELLIPSE, (3, 3))
segm = cv2.morphologyEx(img, cv2.MORPH_OPEN, kernel)
伽马变换是一种非线性的图像增强方法,主要用于调整图像的亮度、对比度和颜色平衡。伽马变换是通过调整伽马值来调整图像的对比度和亮度。
# 设定伽马值
gamma = 0.5
# 对图像进行伽马变换
gamma_correction = np.power(img / 255.0, gamma)
gamma_correction = (gamma_correction * 255).astype(np.uint8)