1. 程式人生 > >影象處理之影象亮度調節

影象處理之影象亮度調節

       影象處理中,影象亮度調節可能是最簡單的演算法了,非常常見的線性運算即可完成亮度調節,比如所有畫素點亮度值乘或者加一個增強係數,使得影象整體變亮或者變暗。看過一些相關開原始碼,常見的操作是乘以一個亮度調節係數。但是,這樣做很容易使影象出現過飽和現象,即亮度值超出255。photoshop中是如何實現的不得而知,每個版本可能也不一樣。還是說說我的實現方法,其實就是在調節過程中,根據畫素點亮度,做非線性調節,即高光、陰影部分調節小一點,中間部分多調節一些,這樣亮度調節看著更自然一些。下面是示例程式碼:

void ImageBrightness(BMPINFO *pSrcBitmap, float strength)
{
	int brightness = (int)(strength*100);
	uchar lookupTable[256];
	for (int i = 0; i < 256; i++)
	{
		lookupTable[i] = (uchar)MIN(255, MAX(0, i + sin(FILTER_PI*i / 255.0f)*brightness));
	}

	int size = pSrcBitmap->lWidth*pSrcBitmap->lHeight;
	uchar* pSrcData = pSrcBitmap->pPlane[0];
	for (int i = 0; i < size; i++, pSrcData+=4)
	{
		pSrcData[AXJ_BLUE] = lookupTable[pSrcData[AXJ_BLUE]];
		pSrcData[AXJ_GREEN] = lookupTable[pSrcData[AXJ_GREEN]];
		pSrcData[AXJ_RED] = lookupTable[pSrcData[AXJ_RED]];
	}
}

       亮度調節示例圖片,上面為原圖,下面為結果圖。

              

              

相關推薦

影象處理影象亮度調節

       影象處理中,影象亮度調節可能是最簡單的演算法了,非常常見的線性運算即可完成亮度調節,比如所有畫素點亮度值乘或者加一個增強係數,使得影象整體變亮或者變暗。看過一些相關開原始碼,常見的操作是

影象處理影象基本變化(平移、縮放、旋轉)(Octave實現)

在模式識別及計算機視覺中,要經常進行影象的變化。 例如:在識別手寫數字中,我們可能在廣泛應用中要求所有的圖片都是20*20這麼好的規格。所以,我們就需要進行縮放來達到目的。 今天來總結下學到的影象的基本變換。 首先我們計 (w,v) (w,v)為源影象的

影象處理影象去噪

假設影象退化過程被建模為一個退化函式和一個加性噪聲項,對輸入影象f(x,y)進行處理,產生退化後的影象g(x,y)。給定g(x,y)和退化函式H以及關於加性噪聲項的一些知識,影象復原的目的就是獲得原始影象的一個估計。 空間域的退化影象: 其中h(x,y)是退化函式的空

影象處理影象快速插值放縮演算法

演算法思想: 基於雙線性演算法的分解,分別進行水平與垂直兩個方向的放縮,完成對整張影象的放大或 者縮小。基於的數學思想為矩陣的乘法,對一個scale矩陣可以拆分為水平與垂直方向的兩 個關聯矩陣,具體如下: 程式解釋: 類ScaleFilter完成對影象的快速放大與縮小,

影象處理影象特徵提取(一)HOG特徵

1、HOG特徵:        方向梯度直方圖(Histogram of Oriented Gradient, HOG)特徵是一種在計算機視覺和影象處理中用來進行物體檢測的特徵描述子。它通過計算和統計

影象處理亮度與對比度

處理影象經常會對影象色彩進行增強,這就是改變影象的亮度和對比度。本章基於opencv對影象的亮度和對比度進行處理操作。其實,這是對影象的每一個畫素點進行相應的操作。 上面這個公式可以很好的解釋對影象

轉《影象處理表面濾波》

本文介紹經典的表面模糊Surface Blur演算法與實現。 表面模糊是PS裡一個重要的保邊濾波器,它的演算法很簡單,公式如下所示: 主要思想還是計算當前畫素X的鄰域範圍內不同畫素的加權求和,邊緣地方的畫素,加權比較大,平滑的地方加權比較小,以此來保留邊緣資訊,平滑平坦區域; 效果如下圖所示:

影象處理---光流法

LK光流演算法公式詳解: 由於工程需要用到 Lucas-Kanade 光流,在此進行一下簡單整理(後續還會陸續整理關於KCF,PCA,SVM,最小二乘、嶺迴歸、核函式、dpm等等): 光流,簡單說也就是畫面移動過程中,影象上每個畫素的x,y位移量,比如第t幀的時候A點的位置是(x1,

影象處理積分圖應用四(基於區域性均值的影象二值化演算法)

影象處理之積分圖應用四(基於區域性均值的影象二值化演算法) 基本原理 均值法,選擇的閾值是區域性範圍內畫素的灰度均值(gray mean),該方法的一個變種是用常量C減去均值Mean,然後根據均值實現如下操作: pixel = (pixel > (mean - c)) ? ob

影象處理積分圖應用三(基於NCC快速相似度匹配演算法)

影象處理之積分圖應用三(基於NCC快速相似度匹配演算法) 基於Normalized cross correlation(NCC)用來比較兩幅影象的相似程度已經是一個常見的影象處理手段。在工業生產環節檢測、監控領域對物件檢測與識別均有應用。NCC演算法可以有效降低光照對影象比較結果的影響。而

影象處理積分圖應用二(快速邊緣保留濾波演算法)

影象處理之積分圖應用二(快速邊緣保留濾波演算法) 一:基本原理 傳統的影象邊緣保留濾波演算法-如高斯雙邊模糊、Mean-Shift模糊等計算複雜、效率比較低,雖然有各種手段優化或者快速計算方法,當時演算法相對一般碼農來說理解起來比較費勁,不是一個的選擇,而通過積分影象實現區域性均方差

影象處理積分圖應用一(半徑無關的快速模糊演算法)

影象處理之積分影象應用一(半徑無關的快速模糊演算法) 一:基本原理概述 傳統的影象空間域卷積模糊演算法,當視窗大小改變時卷積模糊時間也會變化,而且隨著視窗尺寸越大計算量也越大,演算法執行時間約越長。在很多時候無法滿足實時性要求。而基於積分影象可以實現對視窗區域和大小的快速計算,把傳統卷積

影象處理積分圖演算法

影象處理之積分圖演算法 一:積分圖來源與發展 積分影象是Crow在1984年首次提出,是為了在多尺度透視投影中提高渲染速度。隨後這種技術被應用到基於NCC的快速匹配、物件檢測和SURF變換中、基於統計學的快速濾波器等方面。積分影象是一種在影象中快速計算矩形區域和的方法,這種演算法主要優點

數字影象處理空間域濾波和銳化(Octave實現)

濾波這一概念可以結合數字訊號處理這一領域中的濾波。而在數字影象處理中濾波可以分為空間域濾波和頻率域濾波。這篇博文主要來學習下空間域濾波。 空間域濾波機理 *空間濾波器由一個鄰域(典型的是一個較小的矩形)構成,對該鄰域所包圍的畫素按照一定的操作計算出目標畫素的值,這一過程就是空

數字影象處理直方圖均衡化(Octave)

直方圖的均衡化是什麼呢? 舉個簡單的例子:在一個圓中有很多石頭,都集中在圓心附近,對其均衡化就是讓這些石頭儘可能的均勻分佈在圓這個區域內。 並且還有一個原則:如果石頭A在原來狀態下距離圓心的距離在所有石頭是第4位,那麼均衡化後仍然是第4位,相對順序不能變。(大概就是一個拉的更寬了)

影象處理特徵提取

知乎上看到一個話題——目前火熱的 Deep Learning 會滅絕傳統的 SIFT / SURF 特徵提取方法嗎? 由於之前研究過SIFT和HOG這兩種傳統的特徵提取方法,故本篇文章先對SIFT和HOG作一綜述,並比較二者優缺點。之後,將SIFT和HOG同神經網路特徵提取做一對比,淺談對上

影象處理gamma校正

轉載自:淇淇寶貝:影象處理之gamma校正 1 gamma校正背景   在電視和圖形監視器中,映象管發生的電子束及其生成的影象亮度並不是隨映象管的輸入電壓線性變化,電子流與輸入電壓相比是按照指數曲線變化的,輸入電壓的指數要大於電子束的指數。這說明暗區的訊號要比實際情況更暗,而亮區要

影象處理修復

對黑色空洞區域進行處理,輸出影象尺寸為[768,1024,3] 然後利用以下得到影象 水平太菜,改了兩天才改成這個鬼樣子 後來想到col=768,row=1024,應該是768行,1024列,然後把順序顛倒過來了 還是有問題繼續處理: 發現是RGB三

FPGA影象處理行快取(linebuffer)的設計一 FPGA影象處理行快取(linebuffer)的設計一

轉載: FPGA影象處理之行快取(linebuffer)的設計一 FPGA影象處理之行快取(linebuffer)的設計一 作者:OpenS_Lee   1 背景知識     在FPGA數字影象處理中,行快取的使用非常頻繁,

影象處理——卷積

vImage學習筆記——卷積(Convolution) 卷積(Convolution)是一個常用的影象處理技術,可以改變畫素強度,從而影響周圍其他畫素的強度。卷積的常用技術是建立濾鏡,使用卷積技術,你可以獲取一些流行的影象效果,比如模糊(blur)、銳化(sharpen)及邊緣檢測(edge d