日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

图像饱和度处理

發布時間:2023/12/8 编程问答 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 图像饱和度处理 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

圖像飽和度是指圖像色彩的純潔性程度,也稱為顏色的鮮艷程度,是“色彩三屬性”之一。我們經常聽到淺紅色沒有深紅色顏色紅,這種感受就是圖像色彩屬性的人類最直接感覺。飽和度取決于該色中含色成分和消色成分的比例,其中含色成分越大,那么飽和度就越大,同理,如果消色成分越大,必然飽和度越小。

顏色有RGB,HSV,HLS等多種色彩屬性模式,本次主要比較幾種不同方法的顏色飽和度調整效果。

原始圖像:

方法1效果:

方法2效果:

方法3效果:

def hsv(cv2_img, S, L, V, MAX):""" HSV 調整 """cv2_img = cv2_img.astype(np.float32)cv2_img = cv2_img / 255.0HSV = cv2.cvtColor(cv2_img, cv2.COLOR_BGR2HSV)HSV2 = np.copy(HSV)HSV2[:, :, 1] = (1.0 + V / float(MAX)) * HSV2[:, :, 1] ## 明度HSV2[:, :, 1][HSV2[:, :, 1] > 1] = 1HSV2[:, :, 2] = (1.0 + S / float(MAX)) * HSV2[:, :, 2] ### 飽和度HSV2[:, :, 2][HSV2[:, :, 2] > 1] = 1adjImg = cv2.cvtColor(HSV2, cv2.COLOR_HSV2BGR)adjImg = adjImg * 255.0adjImg = adjImg.astype(np.uint8)del cv2_img, HSV, HSV2return adjImgdef hsl(cv2_img, S, L, V, MAX):""" HSL 飽和度調整 """cv2_img = cv2_img.astype(np.float32)cv2_img = cv2_img / 255.0HLS = cv2.cvtColor(cv2_img, cv2.COLOR_BGR2HLS)HLS2 = np.copy(HLS)HLS2[:, :, 1] = (1.0 + L / float(MAX)) * HLS2[:, :, 1] ## 明度HLS2[:, :, 1][HLS2[:, :, 1] > 1] = 1HLS2[:, :, 2] = (1.0 + S / float(MAX)) * HLS2[:, :, 2] ### 飽和度HLS2[:, :, 2][HLS2[:, :, 2] > 1] = 1adjImg = cv2.cvtColor(HLS2, cv2.COLOR_HLS2BGR)adjImg = adjImg * 255.0adjImg = adjImg.astype(np.uint8)del cv2_img, HLS, HLS2return adjImgdef saturationAdjust(cv2_img):#### 圖像顏色飽和度 cv2.namedWindow("SatuAdj", 0)cv2.createTrackbar('S', 'SatuAdj', 10, 100, callback)cv2.createTrackbar('V', 'SatuAdj', 10, 100, callback)cv2.createTrackbar('L', 'SatuAdj', 10, 100, callback)cv2.createTrackbar('I', 'SatuAdj', -100, 100, callback)cv2.createTrackbar('Max', 'SatuAdj', 60, 360, callback)####視圖區域input_img = cv2_img.copy()while True:S, V, L, I, MAX = callback(0)hsv_img = hsv(input_img.copy(), S, L, V, MAX)hsl_img = hsl(input_img.copy(), S, L, V, MAX)rgb_img = rgb(input_img.copy(), I)mat_img = np.hstack((input_img, hsv_img, hsl_img, rgb_img))text = f"Max:{MAX},S:{S}, V:{V}, L:{L}"cv2.putText(mat_img, text, (10, 40), cv2.FONT_HERSHEY_SIMPLEX, 0.5, (0, 0, 0), 1)cv2.imshow("SatuAdj", mat_img)cv2.waitKey(1)

示例2:

調整結果來看,在RGB上效果較差,不穩定,HSL和HSV相當。

今天就分享到這里, 我是paperClub。

備注:WeiXin 搜索paperClub, 添加關注并回復【paperClub】即可獲取使用方法。?

1. 感謝各位小伙伴的關注, 您的點贊、鼓勵和留言,都是我深夜堅持的一份動力,無論褒貶,都是我們行進途中最好的回饋,也都會被認真對待。

2. 我將持續分享各類、好玩且有趣的算法應用及工程和項目,歡迎分享和轉發。溝通、學習和交流,請與我聯系,雖然平時忙,但留言必回,勿急,感謝理解!

3. 分享內容包括開源項目和自研項目,如在引用或使用時,考慮不周、遺漏引用信息或涉及版權等,請您及時聯系。如果您對某些內容感興趣,我們可以一起討論、交流和學習。

總結

以上是生活随笔為你收集整理的图像饱和度处理的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。