亚洲免费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无码精品无码麻豆| 亚洲精品无码专区在线在线播放 | 国产农村三片免费网站| 538亚洲欧美国产日韩在线精品| 国产后入内射在线观看| 蜜桃激情视频一区二区| 99久久婷婷亚洲综合国产| 色婷婷精品久久二区二区蜜臀av| 亚洲成a人v欧美综合天堂| 亚欧色一区w666天堂| 国产成人精品日本亚洲| 亚洲成a人片在线看| 国产亚洲欧美日韩国产片| 中文字幕人妻一区色偷久久| 亚洲天码一区二区三区| 黄片大全视频在线播放| 女局长白白嫩嫩大屁股| 野花社区视频www官网| 国产啪精品视频网站丝袜| 啪啪视频免费看一区二区| 青青青爽在线视频免费播放| 99re66在线观看精品免费| 美女视频黄的全免费视频网站 | 岛国大片在线免费观看| 蜜桃码一区二区三区在线观看| 91精品国产综合久久久蜜| 日本精品久久久久中文字幕| 久久精品成人无码观看不卡| 18禁美女裸体网站无遮挡| 国产综合第一夜| 国产大片在线观看三级| 日本精品一区二区三区在线观看| 亚洲s色大片在线观看| 四房播播在线电影| 日本免费一区二区三区在线看| 蜜桃av一区在线观看| 综合图区亚洲另类偷窥| 日韩内射美女人妻一区二区三区| 麻豆国产AV网站|