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

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

opencv调节图片饱和度_OpenCV调整彩色图像的饱和度和亮度

發(fā)布時(shí)間:2025/3/15 编程问答 22 豆豆
生活随笔 收集整理的這篇文章主要介紹了 opencv调节图片饱和度_OpenCV调整彩色图像的饱和度和亮度 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

問題

如何調(diào)整彩色圖像的飽和度和亮度

解決思路

詳細(xì)步驟:

將RGB圖像值歸一化到[0, 1]

然后使用函數(shù)cvtColor進(jìn)行色彩空間的轉(zhuǎn)換

接下來可以根據(jù)處理灰度圖像對比度增強(qiáng)伽馬變換或者線性變換調(diào)整飽和度和亮度分量

最后轉(zhuǎn)換到RGB色彩空間

代碼

# !/usr/bin/env python

# -*-encoding: utf-8-*-

# author:LiYanwei

# version:0.1

import numpy as np

import cv2

def main():

# 加載圖片 讀取彩色圖像

image = cv2.imread('./Files_image/img1.jpg', cv2.IMREAD_COLOR)

# print(image)

# cv2.imshow("image", image)

# 圖像歸一化,且轉(zhuǎn)換為浮點(diǎn)型

fImg = image.astype(np.float32)

fImg = fImg / 255.0

# 顏色空間轉(zhuǎn)換 BGR轉(zhuǎn)為HLS

hlsImg = cv2.cvtColor(fImg, cv2.COLOR_BGR2HLS)

l = 100

s = 100

MAX_VALUE = 100

# 調(diào)節(jié)飽和度和亮度的窗口

cv2.namedWindow("l and s", cv2.WINDOW_AUTOSIZE)

def nothing(*arg):

pass

# 滑動(dòng)塊

cv2.createTrackbar("l", "l and s", l, MAX_VALUE, nothing)

cv2.createTrackbar("s", "l and s", s, MAX_VALUE, nothing)

# 調(diào)整飽和度和亮度后的效果

lsImg = np.zeros(image.shape, np.float32)

# 調(diào)整飽和度和亮度

while True:

# 復(fù)制

hlsCopy = np.copy(hlsImg)

# 得到 l 和 s 的值

l = cv2.getTrackbarPos('l', 'l and s')

s = cv2.getTrackbarPos('s', 'l and s')

# 1.調(diào)整亮度(線性變換) , 2.將hlsCopy[:, :, 1]和hlsCopy[:, :, 2]中大于1的全部截取

hlsCopy[:, :, 1] = (1.0 + l / float(MAX_VALUE)) * hlsCopy[:, :, 1]

hlsCopy[:, :, 1][hlsCopy[:, :, 1] > 1] = 1

# 飽和度

hlsCopy[:, :, 2] = (1.0 + s / float(MAX_VALUE)) * hlsCopy[:, :, 2]

hlsCopy[:, :, 2][hlsCopy[:, :, 2] > 1] = 1

# HLS2BGR

lsImg = cv2.cvtColor(hlsCopy, cv2.COLOR_HLS2BGR)

# 顯示調(diào)整后的效果

cv2.imshow("l and s", lsImg)

ch = cv2.waitKey(5)

# 按 ESC 鍵退出

if ch == 27:

break

elif ch == ord('s'):

# 按 s 鍵保存并退出

# 保存結(jié)果

lsImg = lsImg * 255

lsImg = lsImg.astype(np.uint8)

cv2.imwrite("lsImg.jpg", lsImg)

break

# 關(guān)閉所有的窗口

cv2.destroyAllWindows()

if __name__ == "__main__":

main()

總結(jié)

以上是生活随笔為你收集整理的opencv调节图片饱和度_OpenCV调整彩色图像的饱和度和亮度的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。