這篇文章主要為大家展示了“C++ OpenCV如何實(shí)現(xiàn)直方圖均衡化”,內(nèi)容簡(jiǎn)而易懂,條理清晰,希望能夠幫助大家解決疑惑,下面讓小編帶領(lǐng)大家一起研究并學(xué)習(xí)一下“C++ OpenCV如何實(shí)現(xiàn)直方圖均衡化”這篇文章吧。
創(chuàng)新互聯(lián)建站主打移動(dòng)網(wǎng)站、成都網(wǎng)站制作、成都網(wǎng)站設(shè)計(jì)、外貿(mào)營銷網(wǎng)站建設(shè)、網(wǎng)站改版、網(wǎng)絡(luò)推廣、網(wǎng)站維護(hù)、域名注冊(cè)、等互聯(lián)網(wǎng)信息服務(wù),為各行業(yè)提供服務(wù)。在技術(shù)實(shí)力的保障下,我們?yōu)榭蛻舫兄Z穩(wěn)定,放心的服務(wù),根據(jù)網(wǎng)站的內(nèi)容與功能再?zèng)Q定采用什么樣的設(shè)計(jì)。最后,要實(shí)現(xiàn)符合網(wǎng)站需求的內(nèi)容、功能與設(shè)計(jì),我們還會(huì)規(guī)劃穩(wěn)定安全的技術(shù)方案做保障。
直方圖定義
圖像直方圖由于其計(jì)算代價(jià)較小,且具有圖像平移、旋轉(zhuǎn)、縮放不變性等眾多優(yōu)點(diǎn),廣泛地應(yīng)用于圖像處理的各個(gè)領(lǐng)域,特別是灰度圖像的閾值分割、基于顏色的圖像檢索以及圖像分類。
數(shù)碼時(shí)代,直方圖可以說是無處不在。無論是相機(jī)的顯示屏,還是后期PS、ACR里的窗口,甚至色階、曲線的工具之中,都可以看到直方圖的身影。
要理解直方圖,繞不開“亮度”這個(gè)概念。人們把照片的亮度分為0到255共256個(gè)數(shù)值,數(shù)值越大,代表的亮度越高。其中0代表純黑色的最暗區(qū)域,255表示最亮的純白色,而中間的數(shù)字就是不同亮度的灰色。人們還進(jìn)一步把這些亮度分為了5個(gè)區(qū)域,分別是黑色,陰影,中間調(diào),高光和白色。
如果一副圖像的像素占有很多的灰度級(jí)而且分布均勻,那么這樣的圖像往往有高對(duì)比度和多變的灰度色調(diào)。直方圖均衡化就是一種能僅靠輸入圖像直方圖信息自動(dòng)達(dá)到這種效果的變換函數(shù)。它的基本思想是對(duì)圖像中像素個(gè)數(shù)多的灰度級(jí)進(jìn)行展寬,而對(duì)圖像中像素個(gè)數(shù)少的灰度進(jìn)行壓縮,從而擴(kuò)展像元取值的動(dòng)態(tài)范圍,提高了對(duì)比度和灰度色調(diào)的變化,使圖像更加清晰。
基本思想
直方圖均衡化處理的“中心思想”是把原始圖像的灰度直方圖從比較集中的某個(gè)灰度區(qū)間變成在全部灰度范圍內(nèi)的均勻分布。直方圖均衡化就是對(duì)圖像進(jìn)行非線性拉伸,重新分配圖像像素值,使一定灰度范圍內(nèi)的像素?cái)?shù)量大致相同。直方圖均衡化就是把給定圖像的直方圖分布改變成“均勻”分布直方圖分布。
直方圖均衡化的基本思想是把原始圖的直方圖變換為均勻分布的形式,這樣就增加了象素灰度值的動(dòng)態(tài)范圍從而可達(dá)到增強(qiáng)圖像整體對(duì)比度的效果。
通過上一篇《C++ OpenCV圖像的重映射》我們用到了remap這個(gè)函數(shù),可以將圖像灰度分布從一個(gè)分布映射到另一個(gè)分布,然后再得到映射后的像素值即可。
直方圖均衡化API cv::equalizeHist
代碼演示
新建一個(gè)項(xiàng)目opencv-0020,配置屬性(VS2017配置OpenCV通用屬性),然后在源文件寫入#include和main方法
直方圖均衡化
代碼非常簡(jiǎn)單
我們來看看顯示效果
我們?cè)贀Q換別的圖試一下效果
以上是“C++ OpenCV如何實(shí)現(xiàn)直方圖均衡化”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對(duì)大家有所幫助,如果還想學(xué)習(xí)更多知識(shí),歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道!