2021-07-05
                                                            生活随笔
收集整理的這篇文章主要介紹了
                                2021-07-05
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.                        
                                最近學習PS中圖像如何進行色度處理的,并參考網上很多大俠的文章,將其圖像處理過程整理一下,其運行環境為PYTHON, OPENCV, NUMPY:
一般情況由于視頻輸出為YUV圖像
 第一步:YUV RGB轉換
第二步:由于攝像頭的光照問題,先去圖像的暗角,參考如下博客
圖像增強系列之圖像自動去暗角算法。 - Imageshop - 博客園 (cnblogs.com)
第三步: 對圖像進行色度調整,增強圖像效果
def WhiiteBlack(img, Shadow, Highlight, Midtones):if Highlight > 255:Highlight = 255if Shadow < 0:Shadow = 0if Shadow >= Highlight:Shadow = Highlight - 2if Midtones > 3.0:Midtones = 3.0if Midtones < 0.3:Midtones = 0.3maptable = np.arange(256)maptable = np.array(maptable, dtype=int)Diff = Highlight - Shadowexponent = 1.0 / Midtones;coe = 255.0 / DiffrgbDiff = (maptable - Shadow) * coergbDiff = np.maximum(rgbDiff, 0)rgbDiff = np.minimum(rgbDiff, 255)rgbDiff = rgbDiff / 255.0rgbDiff = np.power(rgbDiff, exponent) * 255.0 + 0.5rgbDiff = np.around(rgbDiff, 0)rgbDiff = rgbDiff.astype('uint8')result = cv2.LUT(img, rgbDiff)cv2.imshow('input_image1', result)cv2.waitKey(0)return result第四步:圖像顏色空間的調整,用于圖像拼接
使用OPENCV中的cvtColor函數,轉變RGB為LAB
cv::cuda::cvtColor(gpuSrcImage, gpuDstImage, cv::COLOR_BGR2Lab);
第五步:圖像顏色區域的均值與標準差
對于標準RECT區域可以使用opencv::meanStdDev來計算,對于非RECT圖像,需要編寫CUDA KERNEL來計算,對于實時行不高的場景,可以將圖像數據拷貝到內存,運用CPU進行計算
第六步:為圖像拼接進行LAB數據修正
 其原理是運用一張圖像的均值與標準差與另外一張圖像均值與標準差進行圖像亮度與色度修正。
 (Val?- meanR)*(stdL) / (stdR) + meanL?(- Diff) 關于DIFF的值修正可以使用對數函數進行微調;
總結
以上是生活随笔為你收集整理的2021-07-05的全部內容,希望文章能夠幫你解決所遇到的問題。
 
                            
                        - 上一篇: 频谱仪测试gsm信号测试软件,怎样用频谱
- 下一篇: Android中按钮的点击事件的四种写法
