OpenCV中的一些图像方法记录

一、图像类型转换

在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)

二、opencv 形态学变换——腐蚀、膨胀

使用函数为: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)

三、伽马变换

伽马变换是一种非线性的图像增强方法,主要用于调整图像的亮度、对比度和颜色平衡。伽马变换是通过调整伽马值来调整图像的对比度和亮度。

  1. 提升对比度:对于一些灰度值过低的图像,它们的对比度非常低,难以展示图像内部的细节。通过将伽马值设定在低于1的值,可以提升图像中灰度值较低的像素的亮度值,这可以提高图像的整体对比度,从而增强图像的可视性。
  2. 调整亮度和颜色平衡:在图像处理中,经常需要对图像中的亮度和色彩进行调整。对于过于暗淡的图像,可以通过将伽马值设定在大于1的值来调整亮度。如果图像的颜色分布歪曲或过为淡板,可以采用比给定伽马值更大的值来进行颜色平衡。
  3. 在图像编码中的应用:伽马变换在图像编码中被广泛使用,它可以有效的消除图像数据中的大量冗余信息,并在保持图像质量的情况下缩小图像的数据规模。
    # 设定伽马值
    gamma = 0.5
 
    # 对图像进行伽马变换
    gamma_correction = np.power(img / 255.0, gamma)
    gamma_correction = (gamma_correction * 255).astype(np.uint8)

相关推荐

  1. OpenCV一些图像方法记录

    2023-12-06 18:38:02       38 阅读
  2. 介绍一下OpenCV常用图像处理函数

    2023-12-06 18:38:02       26 阅读
  3. Opencv图像平滑处理方法介绍

    2023-12-06 18:38:02       22 阅读

最近更新

  1. TCP协议是安全的吗?

    2023-12-06 18:38:02       18 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2023-12-06 18:38:02       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2023-12-06 18:38:02       18 阅读
  4. 通过文章id递归查询所有评论(xml)

    2023-12-06 18:38:02       20 阅读

热门阅读

  1. 同步加载、异步加载、延迟加载、预加载的区别

    2023-12-06 18:38:02       41 阅读
  2. Android 自定义动画:让你的应用更加生动

    2023-12-06 18:38:02       39 阅读