Python 图像处理OpenCV:灰度图对比度操作(笔记)

编程入门 行业动态 更新时间:2024-10-25 17:27:55

Python 图像处理OpenCV:<a href=https://www.elefans.com/category/jswz/34/1769417.html style=灰度图对比度操作(笔记)"/>

Python 图像处理OpenCV:灰度图对比度操作(笔记)

对图像的灰度图进行对比度增强或减弱操作,前半部分对k值进行操作,后半部分对k值和b值都进行操作。

代码如下:

import cv2 as cv
import numpy as np
# 图像灰度对比度操作
img = cv.imread("./image/fengjing.jpg")
# 在做线性变换之前,需要将彩色图像变为灰度图像。通常用cvtColor()来进行颜色空间的转换
# 将图像转换成灰度图
img_gray = cv.cvtColor(img, cv.COLOR_BGR2GRAY)
print(img_gray.shape)
height, width = img_gray.shape[:2]
print(height, width)
# 创建新图像,以便于后续操作
img_a = np.zeros((height, width), np.uint8)
img_b = np.zeros((height, width), np.uint8)
# 对比度增强,k=1.6
for i in range(height):for j in range(width):result = int(img_gray[i, j] * 1.6)if result > 255:result = 1else:result = result# 这不能写continue,否则会接不到resultimg_a[i, j] = np.uint8(result)
# 对比度减弱,k=0.3
for i in range(height):for j in range(width):result = int(img_gray[i, j] * 0.3)if result < 0:result = 0else:result = result# 这不能写continue,否则会接不到resultimg_b[i, j] = np.uint8(result)
cv.imshow("img", img)
cv.imshow("result_a", img_a)
cv.imshow("result_b", img_b)
cv.waitKey(0)
cv.destroyAllWindows()

运行结果:




上述只是对k值进行操作,下面对k值和b值都进行操作。

代码如下:

import cv2 as cv
import numpy as np
# 图像灰度对比度操作
img = cv.imread("./image/fengjing.jpg")
# 在做线性变换之前,需要将彩色图像变为灰度图像。通常用cvtColor()来进行颜色空间的转换
# 将图像转换成灰度图
img_gray = cv.cvtColor(img, cv.COLOR_BGR2GRAY)
print(img_gray.shape)
height, width = img_gray.shape[:2]
print(height, width)
# 创建新图像,以便于后续操作
img_a = np.zeros((height, width), np.uint8)
img_b = np.zeros((height, width), np.uint8)
# 对比度增强,k=1.6,亮度增强,b=90,其中,b也可为0
for i in range(height):for j in range(width):result = int(img_gray[i, j] * 1.6 + 90)if result > 255:result = 1else:result = result# 这不能写continue,否则会接不到resultimg_a[i, j] = np.uint8(result)
# 对比度减弱,k=0.3,亮度增强,b=90,其中,b也可为0
for i in range(height):for j in range(width):result = int(img_gray[i, j] * 0.3 + 90)if result < 0:result = 0else:result = result# 这不能写continue,否则会接不到resultimg_b[i, j] = np.uint8(result)
cv.imshow("img", img)
cv.imshow("result_a", img_a)
cv.imshow("result_b", img_b)
cv.waitKey(0)
cv.destroyAllWindows()

运行结果:




与上半部分对比,发现通过b值的加入,亮度明显增强。

更多推荐

Python 图像处理OpenCV:灰度图对比度操作(笔记)

本文发布于:2024-02-06 16:27:58,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1750444.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:灰度   对比度   图像处理   操作   笔记

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!