python改善画质
时间: 2023-10-28 14:57:56 浏览: 167
要改善图像质量可以使用不同的方法,比如对数变换、指数变换和均值迁移滤波。
对数变换是一种增强低值灰度图像细节的方法。通过对图像进行灰度非线性变换,可以突出暗部细节。具体实现代码如下:
```python
def duishu():
image = cv2.imread("E:\\18023\\Pictures\\Camera Roll\\LLS.jpg")
img = cv2.cvtColor(image,cv2.COLOR_BGR2GRAY)
jp_img = np.array(40*np.log(img + 1),np.uint8)
cv2.imshow('src',img)
cv2.imshow('dst',jp_img)
cv2.waitKey()
cv2.destroyAllWindows()
```
指数变换是一种扩展图像高灰度级、压缩低灰度级的方法,适用于亮度过高的图像。通过对图像进行指数变换,可以调整图像的对比度。具体实现代码如下:
```python
def zhishu():
image = cv2.imread("E:\\18023\\Pictures\\Camera Roll\\22.jpg")
img = cv2.cvtColor(image,cv2.COLOR_BGR2GRAY)
b = 1.2 # 控制曲线的变换开关
c = 0.2 # 控制曲线的变换开关
a = 0.2 # 控制曲线的位置
newimg = np.array(np.power(b, c*(img-a))-1, np.uint8)
cv2.imshow('src', img)
cv2.imshow('dst', newimg)
cv2.waitKey()
cv2.destroyAllWindows()
```
均值迁移滤波是一种保留边缘并产生油画效果的滤波方法,适用于分辨率较低且想要转换为油画效果的图像。具体实现代码如下:
```python
def shift():
image = cv2.imread("E:\\18023\\Pictures\\Camera Roll\\666.jpg")
dst = cv2.pyrMeanShiftFiltering(image, 50, 50)
cv2.imshow('src', image)
cv2.imshow("dst", dst)
cv2.waitKey(0)
```
以上是三种常用的改善图像质量的方法,可以根据具体需求选择合适的方法来改善图像质量。
阅读全文