修改代码import colorsys from PIL import Image sharp_image = Image.open("red1.jpg") hsi_image = sharp_image.convert("HSV") pixels = hsi_image.load() for i in range(hsi_image.size[0]): for j in range(hsi_image.size[1]): h, s, v = pixels[i, j] s = int(s* 1.5+0.5 ) v = int(v* 1.5+0.5) pixels[i, j] = (h, s, v) rgb_image = hsi_image.convert("RGB") rgb_image.save("red2.jpg")使其不会降低图片清晰度
时间: 2024-02-03 22:01:48 浏览: 55
为了避免降低图像清晰度,可以使用浮点数计算来对饱和度和亮度进行增强,然后使用更高的精度(例如16位或32位)进行图像转换和保存。修改后的代码如下:
```python
import colorsys
from PIL import Image
sharp_image = Image.open("red1.jpg")
hsi_image = sharp_image.convert("HSV")
pixels = hsi_image.load()
# 饱和度和亮度增强
for i in range(hsi_image.size[0]):
for j in range(hsi_image.size[1]):
h, s, v = pixels[i, j]
s = int(s * 1.5 + 0.5)
v = int(v * 1.5 + 0.5)
if s > 255:
s = 255
if v > 255:
v = 255
pixels[i, j] = (h, s, v)
# 转换回RGB颜色空间并保存
rgb_image = hsi_image.convert("RGB")
rgb_image.save("red2.jpg", "TIFF", compression=None, bits=16)
```
其中,增强饱和度和亮度的代码使用了浮点数计算,并且对计算结果进行了范围限制,确保输出不会超出0到255的范围。同时,在图像转换和保存时,使用了更高精度的TIFF格式,并且关闭了压缩选项,以避免对图像质量的影响。
阅读全文