亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        基于QT的數(shù)字圖像的灰度化處理程序設(shè)計(jì)

        2015-02-24 03:23:59趙之源
        決策與信息 2015年23期
        關(guān)鍵詞:表項(xiàng)像素點(diǎn)亮度

        趙之源

        北京郵電大學(xué) 北京 100876

        基于QT的數(shù)字圖像的灰度化處理程序設(shè)計(jì)

        趙之源

        北京郵電大學(xué) 北京 100876

        介紹了使用QT對(duì)BMP圖像進(jìn)行灰度化處理的相關(guān)概念和方法。根據(jù)BMP格式圖像的格式類型和存儲(chǔ)原理,介紹對(duì)BMP格式圖像進(jìn)行讀取和寫入方法,并在此基礎(chǔ)上介紹了對(duì)BMP圖片進(jìn)行灰度化的方法。

        數(shù)字圖像;灰度化處理;QT;C++;位圖

        大家生活中很多情況下需要將一張彩色的圖片轉(zhuǎn)變成黑白的圖片,也就是灰度圖,但是大部分人都是直接使用PS或美圖秀秀這些圖片處理的軟件進(jìn)行,而對(duì)圖片灰度化的過(guò)程不是十分了解甚至一無(wú)所知。很多時(shí)候我們需要把彩色圖像轉(zhuǎn)換為黑白圖像然后進(jìn)行相關(guān)的計(jì)算等。而QT的界面設(shè)計(jì)使得開(kāi)發(fā)帶界面的軟件更為方便,且可用C++語(yǔ)言編寫,運(yùn)行效率高,執(zhí)行速度快,適合圖像處理。因此用QT開(kāi)發(fā)一款圖像灰度化的處理程序十分方便也能幫助我們理解灰度化的原理和過(guò)程。

        1、灰度化原理

        生活中,我們見(jiàn)到的大部分物品都是彩色的,我們生活在一個(gè)五顏六色的世界中,我們通常用來(lái)描述一個(gè)物體的顏色的諸如赤、橙、黃、綠、青、藍(lán)、紫這些顏色名詞有很多,但是即使是這樣,仍然不能涵蓋自然界的所有顏色或者說(shuō)即使用這些詞來(lái)描述一個(gè)物體的顏色仍舊不能描述得很準(zhǔn)確。其實(shí)每一種復(fù)雜的顏色都是可以用紅綠藍(lán)這三種顏色按照不同的比例調(diào)配出來(lái)的,所以不同的顏色種類根據(jù)三種顏色所占比例的不同是不同的,數(shù)量是非常大的。

        同樣,不同的色光還有不同的亮度,同樣是紅色,有的比較亮,有的比較暗。由此可見(jiàn),顏色是無(wú)窮無(wú)盡的,那黑白圖像又是怎么一回事呢?圖像的灰度化的原理又是什么呢。

        其實(shí)圖像灰度化就是根據(jù)公示計(jì)算出每個(gè)像素點(diǎn)的亮度,從而直接用亮度來(lái)表示圖片,而不是用以前的R(紅)、G(綠)、B(藍(lán))值。計(jì)算公示如下:

        這是一個(gè)矩陣計(jì)算公示,公式中的Y就是亮度值,實(shí)際上就是通過(guò)原像素點(diǎn)的紅綠藍(lán)的值計(jì)算出亮度值。通?;叶葓D的數(shù)據(jù)用8位進(jìn)行存儲(chǔ),這樣的圖片灰度有256級(jí),也就是說(shuō)這種灰度化的圖片中包含256中不同亮度的像素點(diǎn),255是白色,0是黑色,中間是不同程度的灰色。

        而對(duì)于不同位數(shù)的BMP圖像的灰度化過(guò)程也是不同的。

        對(duì)于2 4位的B M P圖像只需要通過(guò)公式Y(jié)=0.299R+0.587G+0.144B計(jì)算出各像素點(diǎn)的亮度值,然后將亮度值附給該點(diǎn)的RGB值即R=B=G=Y就行了。

        而對(duì)于其他位數(shù)的灰度化也有兩種方法。如對(duì)于8位的BMP圖像

        Ⅰ.獲取第一個(gè)顏色表項(xiàng)中的R G B值,然后利用公式Y(jié)=0.299R+0.587G+0.144B計(jì)算出該顏色的亮度值Y,并令該顏色表項(xiàng)的RGB值都等于此亮度值Y。同理,再完成對(duì)剩余所有顏色表項(xiàng)的處理,便可實(shí)現(xiàn)灰度化。

        Ⅱ.在8位BMP文件的位圖數(shù)據(jù)中,首先獲取任意第i行,第j列像素點(diǎn)的顏色表索引值index,根據(jù)該索引值找到與其對(duì)應(yīng)的顏色表項(xiàng)color[index],并獲取該顏色表項(xiàng)的RGB值,然后利用公式Y(jié)=0.299R+0.587G+0.144B計(jì)算出該顏色的亮度值Y,再令index=Y;在完成上述處理之后,再對(duì)顏色表項(xiàng)按順序灰度化,即color[index]的R=G=B=index。至此,8位BMP文件的位圖數(shù)據(jù)就表示每個(gè)像素真實(shí)的亮度值。這里介紹的示例程序采用上述方法ii實(shí)現(xiàn)灰度化。

        2、程序設(shè)計(jì)步驟

        程序是基于QT設(shè)計(jì)的,使用C++編程語(yǔ)言,所以設(shè)計(jì)過(guò)程包括界面設(shè)計(jì)和程序設(shè)計(jì)思路。

        2.1 程序界面設(shè)計(jì)

        程序需要用戶輸入數(shù)據(jù),故設(shè)計(jì)用戶數(shù)據(jù)接口即可。

        2.2 程序流程設(shè)計(jì)

        程序設(shè)計(jì)的實(shí)現(xiàn)過(guò)程為:

        (1)讀取BMP文件的文件頭、信息頭、顏色表、像素點(diǎn)數(shù)據(jù)等位圖數(shù)據(jù)。

        其中QT中封裝的獲得文件名代碼如下:

        namebmp=QFileDialog::getOpenFileName(this,"打開(kāi)bmp文件","/","files(*.bmp)");//獲得bmp文件名

        (2)根據(jù)灰度化原理進(jìn)行處理,

        對(duì)8比特的BMP圖片進(jìn)行灰度化的代碼如下:

        for(inti=0;i

        {

        for(intj=0;j

        {

        index=data[i][j];

        ////////24bit

        if(Bitmapinfoheader.biBitCount==24)

        {

        doubley3=0.299*data[i][j*3]+0.587*data[i][3*j+1]+0.114*data[i] [3*j+2];

        inty4=(int)((y3+0.5)*10/10.0);

        if(ui->checkBox->isChecked())

        y4=255;

        data[i][j*3]=y4;

        data[i][j*3+1]=y4;

        data[i][j*3+2]=y4;

        }

        ////////8bit

        if(Bitmapinfoheader.biBitCount==8)

        y0=0.299*Rgbquad[index].rgbRed+0.587*Rgbquad[index]. rgbGreen+0.114*Rgbquad[index].rgbBlue;

        (3)將新圖片數(shù)據(jù)寫到新文件中。

        ///////寫新文件

        FILE*fp1;

        fp1=fopen((dir1+"/"+name1).toStdString().c_str(),"wb");

        fwrite(&Bitmapfileheader,14,1,fp1);

        fwrite(&Bitmapinfoheader,40,1,fp1);

        ///////8bit

        if(Bitmapinfoheader.biBitCount==8)

        {

        fwrite(Rgbquad,4*colornum,1,fp1);

        for(intn=0;n

        fwrite(data[n],w1,1,fp1);

        }

        3、程序測(cè)試實(shí)驗(yàn)

        本實(shí)驗(yàn)用的是500乘500的8位BMP格式的彩色圖像。灰度化結(jié)果如圖2所示

        4、其他

        這里只介紹了8比特彩色圖像的灰度化,在進(jìn)行4比特圖像的灰度化的過(guò)程中時(shí)要注意數(shù)據(jù)部分中,每個(gè)字節(jié)中包含兩個(gè)像素的索引值,每次讀出一個(gè)字節(jié)后需要進(jìn)行處理。

        猜你喜歡
        表項(xiàng)像素點(diǎn)亮度
        一種改進(jìn)的TCAM路由表項(xiàng)管理算法及實(shí)現(xiàn)
        基于ARMA模型預(yù)測(cè)的交換機(jī)流表更新算法
        亮度調(diào)色多面手
        基于canvas的前端數(shù)據(jù)加密
        SDN數(shù)據(jù)中心網(wǎng)絡(luò)基于流表項(xiàng)轉(zhuǎn)換的流表調(diào)度優(yōu)化
        亮度一樣嗎?
        基于逐像素點(diǎn)深度卷積網(wǎng)絡(luò)分割模型的上皮和間質(zhì)組織分割
        基于斬波調(diào)制的LED亮度控制
        人生的亮度
        基于Node-Cell結(jié)構(gòu)的HEVC幀內(nèi)編碼
        不卡av网站一区二区三区| 男女羞羞的视频免费网站| 亚洲女同精品一区二区久久| 国产一区二区三区中文在线| 亚洲日韩国产一区二区三区在线| 久久精品片| 亚洲美女av一区二区| 亚洲一区二区三区偷拍女| 久久婷婷人人澡人人爽人人爱| 国内精品一区二区三区| 国产日产亚洲系列av| 亚洲天堂亚洲天堂亚洲色图| 一本色道久久88亚洲精品综合| 亚洲日韩欧美国产另类综合| 久久精品免费一区二区三区| 国产手机在线αⅴ片无码| 日本高清中文一区二区三区| 国产一品二品精品在线| 成l人在线观看线路1| 日韩AV有码无码一区二区三区| 午夜国产在线精彩自拍视频| 国产精品日日做人人爱| 无码人妻丰满熟妇区五十路百度| 日本一区二区三区激情视频| 亚洲av一区二区在线| 一本加勒比hezyo无码专区| 成全视频高清免费| 天天干夜夜躁| 自拍偷区亚洲综合激情| 亚洲精品少妇30p| 欧美人与动人物牲交免费观看| 国产一区二区三区色区| 日本熟妇另类一区二区三区| 国产精品久久久久久婷婷| 亚洲日产无码中文字幕| 久久精品国产亚洲av四区| 日本少妇高潮喷水xxxxxxx| 国产喷水在线观看| 91中文字幕精品一区二区| 欧美成人猛片aaaaaaa| 香蕉视频www.5.在线观看|