日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

QImage 图像处理

發(fā)布時(shí)間:2023/12/20 编程问答 37 豆豆
生活随笔 收集整理的這篇文章主要介紹了 QImage 图像处理 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
  • 首頁
  • 博客
  • 學(xué)院
  • 下載
  • GitChat
  • TinyMind
  • 論壇
  • 問答
  • 商城
  • ?
  • ?
  • ?

  • 寫博客
  • 發(fā)Chat
  • 登錄注冊(cè)

youngyang_sjtu的博客?

?

RSS訂閱

轉(zhuǎn)

QImage像素級(jí)操作

2018年03月20日 14:31:04

閱讀數(shù):754

轉(zhuǎn)自http://blog.csdn.net/silangquan/article/details/41008183

這篇文章主要闡述了如何使用Qt在像素級(jí)別上對(duì)圖像進(jìn)行操作,并實(shí)現(xiàn)了一些圖像效果,這些效果主要有:灰度,模糊,銳化,添加相框,金屬質(zhì)感,改變圖像飽和度,亮度還有白平衡。

scanLine 返回某一行數(shù)據(jù),轉(zhuǎn)換為QRgb指針可進(jìn)行直接有效的像素存取操作。

介紹

文章中,我們將討論在Qt中修改圖像的一些技術(shù)和算法,在這之前,你必須知道在Qt中操作圖像的一些方法。

.在Qt中有兩種表示圖像的類,Qt:QImage和QPixmap,還有QBitmap來存儲(chǔ)單色的圖像,比如遮罩,QPicture在存儲(chǔ)QPainter的一些操作指令。

? 當(dāng)我們想要在屏幕上繪制圖像的時(shí)候,最快的方法就是使用QPixmap,不過壞處就是無法訪問和修改像素;

QImage在IO操作中有很快的速度,并且給出了訪問像素的接口,這篇文章中我們就使用這個(gè)類。

.如果你是要處理大的圖片,比如攝像頭拍攝的照片,這種情況最好是將原圖縮小之后作為預(yù)覽圖顯示在屏幕上,除非我們?cè)试S用戶縮放圖像。有兩種加載并縮放圖像的方法。

。將圖像加載進(jìn)QImage或者QPixmap,然后調(diào)整大小:

?

[cpp]?view plain?copy

  • QImage?image("sample.png");??
  • image?=?image.scaled(width,?height);??

  • 使用QImageReader來讀取和縮放圖片,然后再加載進(jìn)QImage中。QImageReader無法將一張圖片加載進(jìn)QPixmap中去,但是可以使用靜態(tài)方法 QPixmap::fromImage(QImage img)從QImage中加載進(jìn)QPixmap。這個(gè)方法非???#xff0c;并且不需要加載大圖的內(nèi)存開銷:

    ?

    ?

    [cpp]?view plain?copy

  • QImageReader?imgReader("sample.png");??
  • imgReader.setScaledSize(QSize(width,?height));??
  • QImage?*?image;??
  • imgReader.read(image);??

  • 。每一張圖片都是由像素點(diǎn)組成,每一個(gè)像素都有三個(gè)通道:紅,綠,藍(lán),還有一個(gè)alpha通道來保存透明度(JPEG格式的圖片不支持透明)。每個(gè)通道的值是0-255,三個(gè)通道都是0的話,表示黑色,都是255表示白色。這篇文章中我們用RGB來表示一種顏色,也就是三個(gè)通道的值。

    ?

    ?

    。相比于一個(gè)像素一個(gè)像素地讀取,uchar * ?QImage::scanLine(int i)可以一次讀取整行的像素值,會(huì)更加高效,下面的例子就是按行讀取的例子,也是我們將要講的第一個(gè)例子,轉(zhuǎn)灰度圖。

    ?

    [cpp]?view plain?copy

  • QImage?*?MainWindow::greyScale(QImage?*?origin){??
  • ????QImage?*?newImage?=?new?QImage(origin->width(),?origin->height(),?QImage::Format_ARGB32);??
  • ???
  • ????QRgb?*?line;??
  • ???
  • ????for(int?y?=?0;?y<newImage->height();?y++){??
  • ????????QRgb?*?line?=?(QRgb?*)origin->scanLine(y);??
  • ???
  • ????????for(int?x?=?0;?x<newImage->width();?x++){??
  • ????????????int?average?=?(qRed(line[x])?+?qGreen(line[x])?+?qRed(line[x]))/3;??
  • ????????????newImage->setPixel(x,y,?qRgb(average,?average,?average));??
  • ????????}??
  • ???
  • ????}??
  • ???
  • ????return?newImage;??
  • }??
  • ?

    ?

    灰度

    我們要學(xué)習(xí)的第一個(gè)技術(shù)就是將彩色圖轉(zhuǎn)換成灰度圖,我們首先要明白的一點(diǎn)就是,其實(shí)標(biāo)準(zhǔn)的灰度圖就是每個(gè)像素點(diǎn)的三個(gè)通道的值一樣或者近似,我們的策略就是將每個(gè)像素的每個(gè)通道的值都調(diào)成一樣,取R,G,B值為三者的算數(shù)平均數(shù)就可以了,比如原色是RGB(169,204,69), 那么最終的RGB就是(169+204+69)/3 = 147.

    ?

    ?

    [cpp]?view plain?copy

  • QImage?*?MainWindow::greyScale(QImage?*?origin){??
  • ????QImage?*?newImage?=?new?QImage(origin->width(),?origin->height(),?QImage::Format_ARGB32);??
  • ???
  • ????QColor?oldColor;??
  • ???
  • ????for(int?x?=?0;?x<newImage->width();?x++){??
  • ????????for(int?y?=?0;?y<newImage->height();?y++){??
  • ????????????oldColor?=?QColor(origin->pixel(x,y));??
  • ????????????int?average?=?(oldColor.red()+oldColor.green()+oldColor.blue())/3;??
  • ????????????newImage->setPixel(x,y,qRgb(average,average,average));??
  • ????????}??
  • ????}??
  • ???
  • ????return?newImage;??
  • }??
  • ?

    ?

    原始圖

    ?

    灰度圖

    ?

    亮度調(diào)節(jié)

    就如之前我們提到的,白色用RGB(255,255,255)表示,黑色用RGB(0,0,0)表示,所以如果我們需要提高圖片的亮度(顏色接近白色),我們需要同時(shí)增加三個(gè)通道的數(shù)值,反之就是變暗。

    ?

    在這里我們添加了一個(gè)函數(shù)參數(shù)來決定要提高多少亮度,如果參數(shù)是負(fù)數(shù)的話就是減少亮度了。在每個(gè)通道都加上delta值之后,需要做的就是讓它不要低于0且不要高于255.

    原圖

    加亮圖 Delta = 30

    ?

    ?

    暖色調(diào)

    當(dāng)我們說一一幅暖色調(diào)的圖片的時(shí)候通常是因?yàn)檫@張圖色調(diào)偏黃。我們沒有黃色的通道,但是紅色和綠色混合起來就是黃色,所以我們?cè)黾舆@兩個(gè)通道值,然后藍(lán)色通道值不變就好了。

    ?

    我們使用一個(gè)delta參數(shù)來決定增加紅色和綠色通道的值。一張暖色的圖片能夠給人一種復(fù)古效果,如果是有沙子的圖片,圖片將會(huì)更加生動(dòng)。

    ?

    ?

    [cpp]?view plain?copy

  • QImage?*?MainWindow::warm(int?delta,?QImage?*?origin){??
  • ????QImage?*newImage?=?new?QImage(origin->width(),?origin->height(),?QImage::Format_ARGB32);??
  • ???
  • ????QColor?oldColor;??
  • ????int?r,g,b;??
  • ???
  • ????for(int?x=0;?x<newImage->width();?x++){??
  • ????????for(int?y=0;?y<newImage->height();?y++){??
  • ????????????oldColor?=?QColor(origin->pixel(x,y));??
  • ???
  • ????????????r?=?oldColor.red()?+?delta;??
  • ????????????g?=?oldColor.green()?+?delta;??
  • ????????????b?=?oldColor.blue();??
  • ???
  • ????????????//we?check?if?the?new?values?are?between?0?and?255??
  • ????????????r?=?qBound(0,?r,?255);??
  • ????????????g?=?qBound(0,?g,?255);??
  • ???
  • ????????????newImage->setPixel(x,y,?qRgb(r,g,b));??
  • ????????}??
  • ????}??
  • ???
  • ????return?newImage;??
  • }??
  • ?

    ?

    原圖

    暖色圖 Delta = 30

    ?

    冷色調(diào)

    如果說暖色調(diào)的圖片偏黃色,那么冷色調(diào)的圖片應(yīng)該就是偏藍(lán)色了。在這個(gè)方法里面我們只增加藍(lán)色通道的值,紅色和綠色的值不變。

    冷色調(diào)的圖片可以聯(lián)想到未來,死亡或者,冷。

    ?

    ?

    [cpp]?view plain?copy

  • QImage?*?MainWindow::cool(int?delta,?QImage?*?origin){??
  • ????QImage?*newImage?=?new?QImage(origin->width(),?origin->height(),?QImage::Format_ARGB32);??
  • ???
  • ????QColor?oldColor;??
  • ????int?r,g,b;??
  • ???
  • ????for(int?x=0;?x<newImage->width();?x++){??
  • ????????for(int?y=0;?y<newImage->height();?y++){??
  • ????????????oldColor?=?QColor(origin->pixel(x,y));??
  • ???
  • ????????????r?=?oldColor.red();??
  • ????????????g?=?oldColor.green();??
  • ????????????b?=?oldColor.blue()+delta;??
  • ???
  • ????????????//we?check?if?the?new?value?is?between?0?and?255??
  • ????????????b?=?qBound(0,?b,?255);??
  • ???
  • ????????????newImage->setPixel(x,y,?qRgb(r,g,b));??
  • ????????}??
  • ????}??
  • ???
  • ????return?newImage;??
  • }??
  • ?

    ?

    原圖

    冷色調(diào)圖 Delta = 30

    ?

    飽和度

    我們已經(jīng)說了,顏色由三個(gè)通道組成:紅,綠,藍(lán),盡管如此,RGB不是唯一一個(gè)表示色彩的方式,在這里,我們使用HSL格式表示色彩 -?hue(色相), saturation(飽和度), lightness(明度)。

    飽和的圖像擁有更加生動(dòng)的顏色,通常會(huì)比較好看,但是有一點(diǎn)要記住:不要濫用飽和度,因?yàn)楹苋菀壮霈F(xiàn)失真。

    ?

    ?

    [cpp]?view plain?copy

  • QImage?*?MainWindow::saturation(int?delta,?QImage?*?origin){??
  • ????QImage?*?newImage?=?new?QImage(origin->width(),?origin->height(),?QImage::Format_ARGB32);??
  • ???
  • ????QColor?oldColor;??
  • ????QColor?newColor;??
  • ????int?h,s,l;??
  • ???
  • ????for(int?x=0;?x<newImage->width();?x++){??
  • ????????for(int?y=0;?y<newImage->height();?y++){??
  • ????????????oldColor?=?QColor(origin->pixel(x,y));??
  • ???
  • ????????????newColor?=?oldColor.toHsl();??
  • ????????????h?=?newColor.hue();??
  • ????????????s?=?newColor.saturation()+delta;??
  • ????????????l?=?newColor.lightness();??
  • ???
  • ????????????//we?check?if?the?new?value?is?between?0?and?255??
  • ????????????s?=?qBound(0,?s,?255);??
  • ???
  • ????????????newColor.setHsl(h,?s,?l);??
  • ???
  • ????????????newImage->setPixel(x,?y,?qRgb(newColor.red(),?newColor.green(),?newColor.blue()));??
  • ????????}??
  • ????}??
  • ???
  • ????return?newImage;??
  • }??
  • ?

    ?

    ?

    原圖

    ?

    ?

    飽和的圖片 Delta=30

    ?

    模糊

    這個(gè)效果相對(duì)于之前的有一點(diǎn)點(diǎn)復(fù)雜。我們會(huì)用到一個(gè)卷積濾波器,根據(jù)當(dāng)前像素的顏色和相鄰像素的顏色來獲得一個(gè)新的顏色。同時(shí)還有一個(gè)kernel的矩陣來決定計(jì)算中相鄰像素的影響程度。

    ?

    原像素會(huì)在矩陣的中心,因此我們會(huì)使用基數(shù)行的行和列。我們不會(huì)修改邊緣的像素點(diǎn),因?yàn)槟切c(diǎn)沒有我們需要的相鄰像素點(diǎn),雖然我們也可以只使用有效的像素點(diǎn)。

    ?

    舉了例子,讓我們來看看如何計(jì)算像素的RGB值。下面的三個(gè)舉證代表著當(dāng)前像素和鄰接像素的RGB值,最中間的是當(dāng)前像素。

    R = 20 102 99
    150 200 77?
    170 210 105

    G = 22 33 40
    17 21 33
    8 15 24

    B = 88 70 55
    90 72 59
    85 69 50

    ?

    Kenel =? 0 2 0
    2?5 2
    0 2 0

    ?

    使用濾波器進(jìn)行計(jì)算:

    r = ( (102*2) + (150*2) + (200*5) + (77*2) + (210*2) ) / (2+2+5+2+2) = 159
    g = ( (33*2) + ( 17*2) + (21*5) + (33*2) + (15*2) ) / (2+2+5+2+2) = 23
    b = ( (70*2) + (90*2) + (72*5) + (59*2) + (69*2) ) / (2+2+5+2+2) = 72

    ?

    由原始的RGB(200, 21, 72)得到了RGB(159, 23, 72). ?發(fā)現(xiàn)最大的變化是紅色的通道,因?yàn)榧t色通道的值差距最大。

    ?

    在修改肖像照片的時(shí)候通常會(huì)使用到模糊的技術(shù),它能后掩蓋住皮膚的瑕疵。

    ?

    [cpp]?view plain?copy

  • QImage?*?MainWindow::blur(QImage?*?origin){??
  • ????QImage?*?newImage?=?new?QImage(*origin);??
  • ???
  • ????int?kernel?[5][5]=?{{0,0,1,0,0},??
  • ????????????????????????{0,1,3,1,0},??
  • ????????????????????????{1,3,7,3,1},??
  • ????????????????????????{0,1,3,1,0},??
  • ????????????????????????{0,0,1,0,0}};??
  • ????int?kernelSize?=?5;??
  • ????int?sumKernel?=?27;??
  • ????int?r,g,b;??
  • ????QColor?color;??
  • ???
  • ????for(int?x=kernelSize/2;?x<newImage->width()-(kernelSize/2);?x++){??
  • ????????for(int?y=kernelSize/2;?y<newImage->height()-(kernelSize/2);?y++){??
  • ???
  • ????????????r?=?0;??
  • ????????????g?=?0;??
  • ????????????b?=?0;??
  • ???
  • ????????????for(int?i?=?-kernelSize/2;?i<=?kernelSize/2;?i++){??
  • ????????????????for(int?j?=?-kernelSize/2;?j<=?kernelSize/2;?j++){??
  • ????????????????????color?=?QColor(origin->pixel(x+i,?y+j));??
  • ????????????????????r?+=?color.red()*kernel[kernelSize/2+i][kernelSize/2+j];??
  • ????????????????????g?+=?color.green()*kernel[kernelSize/2+i][kernelSize/2+j];??
  • ????????????????????b?+=?color.blue()*kernel[kernelSize/2+i][kernelSize/2+j];??
  • ????????????????}??
  • ????????????}??
  • ???
  • ????????????r?=?qBound(0,?r/sumKernel,?255);??
  • ????????????g?=?qBound(0,?g/sumKernel,?255);??
  • ????????????b?=?qBound(0,?b/sumKernel,?255);??
  • ???
  • ????????????newImage->setPixel(x,y,?qRgb(r,g,b));??
  • ???
  • ????????}??
  • ????}??
  • ????return?newImage;??
  • }??
  • ?

    ?

    原圖

    ?

    模糊圖

    ?

    銳化

    像模糊中一樣,銳化一張圖片也會(huì)使用一個(gè)卷積濾波器,但是kernel矩陣是不一樣的,相鄰像素對(duì)應(yīng)的值是負(fù)的。

    銳化能夠處理模糊的照片,能夠提升細(xì)節(jié)。

    ?

    [cpp]?view plain?copy

  • QImage?*?MainWindow::sharpen(QImage?*?origin){??
  • ????QImage?*?newImage?=?new?QImage(*?origin);??
  • ???
  • ????int?kernel?[3][3]=?{{0,-1,0},??
  • ????????????????????????{-1,5,-1},??
  • ????????????????????????{0,-1,0}};??
  • ????int?kernelSize?=?3;??
  • ????int?sumKernel?=?1;??
  • ????int?r,g,b;??
  • ????QColor?color;??
  • ???
  • ????for(int?x=kernelSize/2;?x<newImage->width()-(kernelSize/2);?x++){??
  • ????????for(int?y=kernelSize/2;?y<newImage->height()-(kernelSize/2);?y++){??
  • ???
  • ????????????r?=?0;??
  • ????????????g?=?0;??
  • ????????????b?=?0;??
  • ???
  • ????????????for(int?i?=?-kernelSize/2;?i<=?kernelSize/2;?i++){??
  • ????????????????for(int?j?=?-kernelSize/2;?j<=?kernelSize/2;?j++){??
  • ????????????????????color?=?QColor(origin->pixel(x+i,?y+j));??
  • ????????????????????r?+=?color.red()*kernel[kernelSize/2+i][kernelSize/2+j];??
  • ????????????????????g?+=?color.green()*kernel[kernelSize/2+i][kernelSize/2+j];??
  • ????????????????????b?+=?color.blue()*kernel[kernelSize/2+i][kernelSize/2+j];??
  • ????????????????}??
  • ????????????}??
  • ???
  • ????????????r?=?qBound(0,?r/sumKernel,?255);??
  • ????????????g?=?qBound(0,?g/sumKernel,?255);??
  • ????????????b?=?qBound(0,?b/sumKernel,?255);??
  • ???
  • ????????????newImage->setPixel(x,y,?qRgb(r,g,b));??
  • ???
  • ????????}??
  • ????}??
  • ????return?newImage;??
  • }??
  • ?

    ?

    原圖

    銳化圖

    ?

    添加相框

    繪制一個(gè)相框是非常見到那的,我們只需要把相框在原圖上面繪制就可以了。這里假設(shè)我們已經(jīng)有一個(gè)和圖片一樣大小的相框了,不一樣的話要resize到一樣大。

    ?

    [cpp]?view plain?copy

  • QImage?*?MainWindow::drawFrame(QImage?*?origin){??
  • ????QImage?*?newImage?=?new?QImage(*?origin);??
  • ????QPainter?painter;??
  • ???
  • ????painter.begin(newImage);??
  • ???
  • ????painter.drawImage(0,0,?QImage(":images/frame.png"));??
  • ???
  • ????painter.end();??
  • ???
  • ????return?newImage;??
  • }??
  • ?

    ?

    原圖

    相框

    添加相框之后

    ?

    金屬效果

    這個(gè)例子中我們會(huì)結(jié)合幾種技術(shù)來獲得一種效果。下面是處理的步驟:

    1.調(diào)整圖像的亮度,獲得一個(gè)較暗的圖片。

    2.將圖像轉(zhuǎn)成灰度。

    3.將灰度圖繪制在金屬的紋理上,透明度50%。

    ?

    [cpp]?view plain?copy

  • QImage?*?MainWindow::metal(QImage?*?origin){??
  • ????QImage?*?newImage?=?new?QImage(":images/metal.png");??
  • ????QImage?*?darkImage?=?brightness(-100,?origin);??
  • ????QImage?*?greyImage?=?greyScale(darkImage);??
  • ????QPainter?painter;??
  • ???
  • ????painter.begin(newImage);??
  • ???
  • ????painter.setOpacity(0.5);??
  • ????painter.drawImage(0,?0,?*?greyImage);??
  • ???
  • ????painter.end();??
  • ???
  • ????delete?greyImage;??
  • ????delete?darkImage;??
  • ???
  • ????return?newImage;??
  • }??
  • ?

    ?

    ?

    ?

    原圖

    ?

    金屬紋理

    ?

    最終效果

    ?

    模糊的邊框

    最后再來學(xué)習(xí)一個(gè)融合的效果,這次我們想要做的是模糊圖片外延的部分,讓視線的焦點(diǎn)聚集在圖片的中間。

    ?

    我們將會(huì)使用一張遮罩圖片,來決定需要模糊的部分,具體的操作步驟如下:

    1.從原圖獲取一張完全模糊的圖片。

    2.使用QPainter的一種融合模式,通過遮罩圖片截取出一個(gè)模糊的相框。點(diǎn)這里可以學(xué)習(xí)到更多的QPainter的融合模式。

    3.在原圖上繪制出模糊的邊框。

    ?

    [cpp]?view plain?copy

  • QImage?*?MainWindow::blurFrame(QImage?*?origin){??
  • ????QImage?*?newImage?=?new?QImage(*?origin);??
  • ????QImage?*?blurredImage?=?blur(newImage);??
  • ????QImage?*?mask?=?new?QImage(":images/mask.png");??
  • ????QPainter?painter;??
  • ???
  • ????//Using?the?composition?mode?SourceAtop?we?get?a?blurred?frame?stored?in?QImage?mask??
  • ????painter.begin(mask);??
  • ???
  • ????painter.setCompositionMode(QPainter::CompositionMode_SourceAtop);??
  • ????painter.drawImage(0,?0,?*?blurredImage);??
  • ???
  • ????painter.end();??
  • ???
  • ????//With?our?new?frame?we?simply?draw?it?over?the?original?image??
  • ????painter.begin(newImage);??
  • ???
  • ????painter.setCompositionMode(QPainter::CompositionMode_SourceOver);??
  • ????painter.drawImage(0,?0,?*?mask);??
  • ???
  • ????painter.end();??
  • ???
  • ????delete?mask;??
  • ????delete?blurredImage;??
  • ???
  • ????return?newImage;??
  • }??
  • ?

    ?

    原圖

    ?

    遮罩

    ?

    模糊的邊框

    ?

    最終效果

    ?

    手機(jī)Demo

    你可以下載這個(gè)手機(jī)Demo的源碼,里面包含了文章中的源碼,在這個(gè)應(yīng)用中,包含了3張462*260的圖片。測(cè)試應(yīng)用的時(shí)候,你只要選擇其中一張并應(yīng)用下面的效果就可以了。

    ?

    總結(jié)

    這篇文章應(yīng)該可以成為你圖像處理的入門,但是一切皆有可能。你可以修改這些方法,整合這些方法,使用其他的技術(shù)等等。想象力才是你唯一的限制。

    個(gè)人分類:?image processing

    相關(guān)熱詞:?qimage畫布 ?qimage拷貝 ?qimage類型 ?qimage顏色 ?qimage轉(zhuǎn)換

    上一篇基石

    ?

    下一篇PCA在圖像壓縮和圖像識(shí)別的區(qū)別

    2018年P(guān)ython全棧平均薪資是多少?

    轉(zhuǎn)型學(xué)Python如何從8K提升至20K月薪,多數(shù)高薪Python全棧需要掌握Django框架、網(wǎng)絡(luò)爬蟲Scrapy框架、Xpath、PhantomJS、BeautifulSoup、Redis存儲(chǔ)和Docker容器技術(shù)、自動(dòng)化運(yùn)維、數(shù)據(jù)挖掘與機(jī)器學(xué)習(xí)…………

    想對(duì)作者說點(diǎn)什么??我來說一句

    QImage縮放后圖片更清晰處理

    ?

    ?2219

    QImage的縮放是比較常用的,今天碰到一個(gè)問題: 我發(fā)現(xiàn)縮放后的圖片看起來很不清晰,于是看了一下QImage的scaled方法。發(fā)現(xiàn)它默認(rèn)的是快速縮放,也就是增加scale的處理速度,犧牲的就是圖片...

    QImage的顯示

    ?

    ?5560

    因?yàn)橄肜肣T的gui在arm上顯示的緣故,因此開始接觸了QT。最近,用QT在弄一個(gè)顯示圖片的小程序。程序如下: #include #include "mainwindow.h" ...

    基于Qt的圖像處理技術(shù)和算法 - CSDN博客

    6-7?

    這篇文章主要闡述了如何使用Qt在像素級(jí)別上對(duì)圖像進(jìn)行操作,并實(shí)現(xiàn)了一些圖像效果,這些效果主要有:灰度,模糊,銳化,添加相框,金屬質(zhì)感,改變圖像飽和度,亮度還有白平衡。...

    Qt中圖像的顯示與基本操作?- CSDN博客

    8-1?

    Qt可顯示基本的圖像類型,利用QImage、QPxmap類可以實(shí)現(xiàn)圖像的顯示,并且利用類中...這里說下QImage和QPixmap類的用處:QImage為圖像的像素級(jí)訪問做了優(yōu)化,QPixmap...

    ?

    qt之QImage

    ?

    ?8850

    QImage::QImage() ???構(gòu)造一個(gè)空的QImage對(duì)象,此時(shí)返回的對(duì)象,如果調(diào)用isNULL 返回值為真 QImage::QImage(const?QSize?&?size,?Fo...

    Qt之QImageReader - CSDN博客

    5-29?

    QImage像素級(jí)操作 轉(zhuǎn)自http://blog.csdn.net/silang...訪問: 339萬+ 積分: 3萬+ 排名: 177 勛章...舉報(bào)內(nèi)容: Qt之QImageReader 舉報(bào)原因: 色情 政治...

    Qt?QImage像素格式小結(jié) - CSDN博客

    6-6?

    Qt中QImage類封裝了對(duì)于一般圖像像素級(jí)的操作,圖像顯示則使用QPixmap。本文說說對(duì)...訪問: 32萬+ 積分: 4298 排名: 9140 勛章: 持之以恒 授予每個(gè)自然...

    對(duì)比OpenCV, QT, ITK庫(kù)對(duì)圖像像素級(jí)的操作

    ?

    ?1286

    本文以常見的二維BMP圖像為例,對(duì)比OpenCV, QT, ITK庫(kù)對(duì)圖像像素級(jí)的操作。

    關(guān)于QPixmap/QImage/QPicture

    ?

    ?9087

    繪圖設(shè)備是指繼承QPainterDevice的子類。Qt一共提供了四個(gè)這樣的類,分別是QPixmap、QBitmap、QImage和 QPicture。其中,QPixmap專門為圖像在屏幕上的顯示做了...

    對(duì)比OpenCV, QT, ITK庫(kù)對(duì)圖像像素級(jí)的操作?- CSDN博客

    6-3?

    本文以常見的二維BMP圖像為例,對(duì)比OpenCV, QT, ITK庫(kù)對(duì)圖像像素級(jí)的操作。...//直接訪問bmp圖像內(nèi)存, 不考慮RGB三個(gè)分量 InputImageType::IndexType ...

    OpenCV中Mat數(shù)據(jù)結(jié)構(gòu)的像素級(jí)訪問 - CSDN博客

    5-22?

    OpenCV 訪問Mat數(shù)據(jù)順序訪問隨機(jī)訪問

    QImage

    ?

    ?1.3萬

    支持的圖像格式: BMP ,GIF , JPG , JPEG, PNG, PBM, PGM, PPM, XBM, XPM //使用給定的大小和格式構(gòu)造圖像 QImage(const ...

    【Qt開發(fā)】Qt中圖像的顯示與基本操作?- CSDN博客

    6-26?

    Qt可顯示基本的圖像類型,利用QImage、QPxmap類可以實(shí)現(xiàn)圖像的顯示,并且利用類中的方法可以實(shí)現(xiàn)圖像的基本操作(縮放、旋轉(zhuǎn))。 1. Qt可顯示的圖像類型 參考Qt的幫助...

    QT獲取字符串的像素的寬與高 - CSDN博客

    6-6?

    Qt 中獲取字體的像素高度和寬度 最近在用Qt做文字的滾屏效果,要計(jì)算字體的像素...訪問: 2萬+ 積分: 549 排名: 9萬+ 勛章: 持之以恒 授予每個(gè)自然...

    QImage轉(zhuǎn)換圖片格式,并替換特定顏色像素

    ?

    ?117

    Widget::Widget(QWidget *parent) : QWidget(parent), ui(new Ui::Widget) { ui->setupU...

    qt?Qimage動(dòng)態(tài)更改圖片像素例子

    2018年05月08日?6KB?下載

    QT 如何使圖片像素變小的問題 - CSDN博客

    6-6?

    這里主要介紹了在Qt中使圖片像素變小,編程的時(shí)候,一般都是要添加圖片的,但是圖片有很大,對(duì)于編程人員來說,編程那是小事,要實(shí)現(xiàn)快速化縮小圖片,就是頭疼的事兒了...

    QImage對(duì)一般圖像的處理

    ?

    ?6343

    Qt中QImage類封裝了對(duì)于一般圖像像素級(jí)的操作,圖像顯示則使用QPixmap。 本文說說對(duì)一般圖像(常見格式,圖像不大)的處理,比如將彩色圖像處理為灰度圖像。首先要獲得源圖像數(shù)據(jù),對(duì)源圖像數(shù)據(jù)進(jìn)...

    【Qt開發(fā)】如何將內(nèi)存圖像數(shù)據(jù)封裝成QImage?V1

    ?

    ?1885

    如何將內(nèi)存圖像數(shù)據(jù)封裝成QImage ? ? ? ? 當(dāng)采用Qt開發(fā)相機(jī)數(shù)據(jù)采集軟件時(shí),勢(shì)必會(huì)遇到采集內(nèi)存圖像并進(jìn)行處理(如縮放、旋轉(zhuǎn))操作。如果能夠?qū)?nèi)存圖像數(shù)據(jù)封裝成QImage,則可以利用QI...

    QPixmap、QBitmap、QImage?與 QPicture

    ?

    ?2.2萬

    在處理影像資料上,Qt提供了QPixmap、QBitmap、QImage與QPicture等類別。 一. 幾種類的簡(jiǎn)介 QPixmap繼承了QPaintDevice,您可用以建立QPaint e...

    QT?QImage使用方法(Qt學(xué)習(xí)1)

    ?

    ?3286

    參考鏈接: 1、http://blog.csdn.net/feiyangyangfei/article/details/8672748 Qt信號(hào)與槽 以及圖像在label縮放顯示 //mysigna...

    練習(xí)一 使用QImage顯示RGB圖像和灰度圖像

    ?

    ?6620

    QT的圖像類有QImage,QPixmap,QBitmap,QPicture。 CMyWidget類頭文件: #ifndef CMYWIDGET_H #define CMYWIDGET_H ...

    ?

    【圖像融合】簡(jiǎn)單認(rèn)識(shí)圖像融合

    ?

    ?2964

    簡(jiǎn)單認(rèn)識(shí)圖像融合,包括概念、特點(diǎn)、應(yīng)用、基本原則以及像素級(jí)融合、特征級(jí)融合、決策級(jí)融合...

    QImage類

    ?

    ?2.8萬

    QImage類提供了一個(gè)硬件無關(guān)的圖像表示方法,該圖像可以逐像素被訪問和用于畫圖設(shè)備。 Qt提供了QImage、QPixmap、QBitmap和QPicture四種圖像操作類。QImage類主要用于...

    【Qt】QImage使用總結(jié)

    ?

    ?204

    圖像格式轉(zhuǎn)換由 RGB 格式轉(zhuǎn)換成 BGR 格式QImage::rgbSwapped() 返回一個(gè)QImage,其中所有像素的紅色和藍(lán)色組件的值被交換,有效地將RGB圖像轉(zhuǎn)換為BGR圖像。QImag...

    二值化的圖像轉(zhuǎn)化成QImage

    ?

    ?77

    之前還做過GIGE相機(jī)的raw格式轉(zhuǎn)換為OpenCV格式,一開始覺得很不好下手,但其實(shí)圖像都會(huì)遵循標(biāo)準(zhǔn)的,,不要慌,仔細(xì)看文檔,看清楚是什么格式后就能發(fā)現(xiàn)轉(zhuǎn)換的辦法? ? ? ?代碼如下[cpp]?v...

    halcon中Image的像素類型

    ?

    ?231

    在學(xué)習(xí)halcon算子sub_image(ImageMinuend, ImageSubtrahend : ImageSub : Mult, Add : )時(shí),在樣例中遇到了一個(gè)操作* This exa...

    ?

    Qt使用QImage裁剪圖片

    ?

    ?453

    今天想搞一個(gè)放大鏡的功能,首先要解決如何裁剪圖片的需求,于是翻遍網(wǎng)絡(luò)好像沒有和我想法一致的需求,我是需要移動(dòng)框,然后框會(huì)自動(dòng)裁剪當(dāng)前的圖片,于是查了下文檔,自己寫了一個(gè)Image的裁剪功能,記錄如下:...

    QImage?總結(jié)

    ?

    ?1231

    圖像的數(shù)據(jù)是以字節(jié)為單位保存的,每一行的字節(jié)數(shù)必須是4的整數(shù)倍,不足的補(bǔ)0。 (因?yàn)槲覀兪褂玫氖?2操作系統(tǒng),因此數(shù)據(jù)是按照32位對(duì)齊的,所以每行的字節(jié)數(shù)必須是4的整數(shù)倍也就是說每行的數(shù)據(jù)位必須是3...

    IplImage與QImage之間相互轉(zhuǎn)換的問題

    ?

    ?2899

    做Qt這么久了,一直想把IplImage與QImage之間相互轉(zhuǎn)換的問題貼出來,一直沒有時(shí)間,今天抽空把代碼貼出來,思路很簡(jiǎn)單,只需要把數(shù)據(jù)根據(jù)兩種不同格式進(jìn)行復(fù)制就行了。 IplImage轉(zhuǎn)QIma...

    Qt中對(duì)圖片中的顏色進(jìn)行修改

    ?

    ?3340

    由Qimage的colorTable方法獲得圖片中全部的顏色,然后找到你要更換的顏色,把顏色的編號(hào)交給setColor方法就可以了,具體請(qǐng)看qt的文檔。QImage image(":/image//i...

    QT的QImage?與 Opencv的Mat 之間的轉(zhuǎn)換

    ?

    ?4773

    直接上代碼: cv::Mat QImageToMat(QImage image) { cv::Mat mat; switch (image.format()) { case QImage::...

    ?

    QImage?圖像格式小結(jié)

    ?

    ?1451

    http://tracey2076.blog.51cto.com/1623739/539690 嗯,這個(gè)QImage的問題研究好久了,有段時(shí)間沒用,忘了,已經(jīng)被兩次問到了,突然有點(diǎn)解釋不清楚,我...

    【Qt】QImage等坐標(biāo)系

    ?

    ?1483

    Qimage等均是以左上角為原點(diǎn)(0,0),向右向下分別延伸x與y的正半軸的。

    OpenCV 學(xué)習(xí)(像素操作?Manipuating the Pixels)

    ?

    ?3938

    OpenCV 學(xué)習(xí)(像素操作 Manipuating the Pixels)OpenCV 雖然提供了許多類型的圖像處理函數(shù),可以對(duì)圖像進(jìn)行各種常見的處理,但是總會(huì)有些操作時(shí)沒有的,這時(shí)我們就需要自己來...

    將QImage轉(zhuǎn)化為半透明的效果

    ?

    ?76

    //將QImage轉(zhuǎn)化為半透明的效果QPixmap ?ChangeQImageTransparency(QString path){ QImage *img = new QImage; img-&am...

    QImage圖像格式

    ?

    ?613

    圖像的數(shù)據(jù)是以字節(jié)為單位保存的,每一行的字節(jié)數(shù)必須是4的整數(shù)倍,不足的補(bǔ)0。 (因?yàn)槲覀兪褂玫氖?2操作系統(tǒng),因此數(shù)據(jù)是按照32位對(duì)齊的,所以每行的字節(jié)數(shù)必須是4的整數(shù)倍也就是說每行的數(shù)據(jù)位必須...

    ?

    如何正確地在手機(jī)上顯示圖片——QImage與QPixmap完全解析

    ?

    ?1180

    引言 用Qt程序在手機(jī)上顯示一幅圖片對(duì)編程人員來說是再基礎(chǔ)不過的一件事情了。那么先讓大家看兩段代碼:? //dangerous should not be used, cannot d...

    QImage和IplImage轉(zhuǎn)換總結(jié)

    ?

    ?1283

    在arm中做圖像處理,因?yàn)橐话愣紩?huì)用到

    QImage?與 cv::Mat 之間的相互轉(zhuǎn)換

    ?

    ?2.7萬

    最近做圖像處理方面的項(xiàng)目比較多,很多算法自己從頭寫的話太浪費(fèi)時(shí)間,而且自己寫的也不一定完善,早就聽說OpenCV在圖像處理算法方面功能很強(qiáng)大,一直沒時(shí)間學(xué)習(xí),這次正好項(xiàng)目用到了,臨時(shí)抱佛腳學(xué)習(xí)些Ope...

    將圖片QImage顯示在QWidget控件上

    ?

    ?4174

    mainwindow.cpp MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent), ui(new ...

    OpenCV的cv::Mat轉(zhuǎn)換為Qt的QImage是歪斜失真

    ?

    ?74

    1?OpenCV的cv::Mat轉(zhuǎn)換為Qt的QImage是歪斜失真 2?Qt中用QLabel顯示OpenCV中Mat圖像數(shù)據(jù)出現(xiàn)扭曲現(xiàn)象的解決 void CenterWindow::dis...

    ?

    Qt之圖像處理QImage

    ?

    ?566

    1.QImage 這幾天在處理gif格式的圖片,目的是:將gif圖片的背景設(shè)置為透明第一步,將gif的每一幀分離出來,這里偷懶了,直接度娘了一個(gè)分離工具直接分離了。 第二部,設(shè)置透明色(這個(gè)是重點(diǎn)...

    QT三大繪圖類:Qpixmap/QImage/Qpicture

    ?

    ?2775

    QPixmap QImage QPicture 以上都是QPaintDevice的子類QPixmap 依賴硬件、加速顯示、適合小圖片 QPixmap的設(shè)計(jì)本來就是用來加速顯示,用paint繪圖時(shí)用...

    QImage?與Mat 轉(zhuǎn)化

    ?

    ?743

    轉(zhuǎn)自:http://blog.csdn.net/zyh821351004/article/details/46646735

    Qt 如何使用?QImage?設(shè)置指定的顏色為透明色?

    ?

    ?543

    Qt 如何使用 QImage 設(shè)置指定的顏色為透明色?需求背景:使用華大身份證讀卡器模塊讀取身份證信息,通過模塊讀取的圖片為 *.BMP 格式,無透明色,故繪制到身份證上無法美觀的顯示。通過查詢身份證...

    BufferedImage 與像素級(jí)渲染

    ?

    ?4610

    常有人說Java圖形渲染很慢?嗯,相對(duì)C/C++而言,Java2D固有的圖像處理能力確實(shí)有待提高。?但是,這也僅僅局限于對(duì)比C/C++應(yīng)用而言。?如果您是以其它什么東西與之比較,卻得出Java渲染很慢...

    ?

    QImage與QPixmap完全解析

    ?

    ?1.8萬

    轉(zhuǎn)載自http://www.civilnet.cn/bbs/browse.php?topicno=4691 用Qt程序在手機(jī)上顯示一幅圖片對(duì)編程人員來說是再基...

    Qt可顯示基本的圖像類型,利用QImage、QPxmap類可以實(shí)現(xiàn)圖像的顯示,并且利用類中的方法可以實(shí)現(xiàn)圖像的基本操作(縮放、旋轉(zhuǎn))。

    ?

    ?4882

    Qt可顯示基本的圖像類型,利用QImage、QPxmap類可以實(shí)現(xiàn)圖像的顯示,并且利用類中的方法可以實(shí)現(xiàn)圖像的基本操作(縮放、旋轉(zhuǎn))。 1. Qt可顯示的圖像類型 參考Qt的幫助文檔,可支持的類型...

    基于實(shí)例的像素級(jí)標(biāo)注介紹

    ?

    ?427

    對(duì)于機(jī)器視覺的項(xiàng)目,有多種標(biāo)注方法可供選擇。比如你可以把圖片劃分為不同的類別,為圖片中物體畫嚴(yán)格相切的2D框,在重要實(shí)體的角落里畫點(diǎn)或者把給點(diǎn)圖片中的每個(gè)單獨(dú)的像素都標(biāo)注出來。不同的標(biāo)注方式來源于不同...

    8-3 使用QImage進(jìn)行高質(zhì)量繪制(High-Quality Rendering with?QImage)

    ?

    ?1.4萬

    ?在進(jìn)行繪圖時(shí),我們經(jīng)常要面對(duì)速度和效率兩者之間矛盾。在X11和MacOsX系統(tǒng)上,在QWidget和QPixmap繪圖要依賴平臺(tái)自身的繪圖引擎。在X11上,與X server的通信很少,Qt只是發(fā)送...

    Java像素級(jí)的操作

    ?

    ?651

    Java像素級(jí)的操作

    ?

    圖片的像素級(jí)處理

    ?

    ?837

    可以通過使用TBitmapUtil類的一些方法對(duì)位圖進(jìn)行像素級(jí)的處理。包括:void Begin(const TPoint& aPosition):設(shè)置當(dāng)前要處理的像素位置,并鎖定堆。void End...

    QT圖像處理示例,包括QImage的處理。

    2011年07月01日?283KB?下載

    用QImage創(chuàng)建合成的圖片(一張圖片堆疊在另一張圖片上)

    ?

    ?2359

    用QImage創(chuàng)建合成的圖片

    全卷積網(wǎng)絡(luò):從圖像級(jí)理解到像素級(jí)理解

    ?

    ?3778

    2016-05-09?趙凱?深度學(xué)習(xí)大講堂 點(diǎn)擊上方“公眾號(hào)”可訂閱哦!深度學(xué)習(xí)大講堂致力于推送人工智能,深度學(xué)習(xí)方面的最新技術(shù),產(chǎn)品以及活動(dòng)。 卷積神經(jīng)網(wǎng)絡(luò)(CNN):圖像級(jí)語義理解的利器????...

    QImage與QPixmap加載圖片效果 【兩者的區(qū)別】

    ?

    ?2949

    QImage與QPixmap加載圖片 效果 . 分類:?QT開發(fā) qtQtQT PixmapTest::PixmapTest(QWidget *parent) : QDial...

    ?

    使用QImage進(jìn)行高質(zhì)量繪制(High-Quality Rendering with?QImage)

    ?

    ?1527

    分類: C++ GUI Programming with Qt 4 (59) 在進(jìn)行繪圖時(shí),我們經(jīng)常要面對(duì)速度和效率兩者之間矛盾。在X11和MacOsX系統(tǒng)上,在QWidget和QPixmap繪圖...

    將指定文字寫入QImage中并保存成圖片

    ?

    ?4193

    在實(shí)際項(xiàng)目中,我們往往想讓指定的文字連接成一個(gè)整體,不讓用戶對(duì)顯示的文字進(jìn)行拆分復(fù)制等操作,只進(jìn)行顯示,也就是說,我們想讓部分字符串以原子的形式顯示給用戶,例如,在即時(shí)通訊軟件中,我們?cè)谌豪?#64;一個(gè)人是...

    沒有更多推薦了,返回首頁

    個(gè)人資料

    youngyang_sjtu

    關(guān)注

    原創(chuàng)

    2

    粉絲

    2

    喜歡

    2

    評(píng)論

    0

    等級(jí):

    ?

    訪問:

    ?

    925

    積分:

    ?

    33

    排名:

    ?

    199萬+

    ?

    最新文章

    • PCA在圖像壓縮和圖像識(shí)別的區(qū)別
    • 基石

    個(gè)人分類

    • Qt1篇
    • image processing2篇

    歸檔

    • 2018年3月3篇

    熱門文章

    • QImage像素級(jí)操作

      閱讀量:742

    • PCA在圖像壓縮和圖像識(shí)別的區(qū)別

      閱讀量:153

    • 基石

      閱讀量:18

    ?

    聯(lián)系我們

    請(qǐng)掃描二維碼聯(lián)系客服

    webmaster@csdn.net

    400-660-0108

    QQ客服?客服論壇

    關(guān)于招聘廣告服務(wù)?網(wǎng)站地圖

    ?2018 CSDN版權(quán)所有?京ICP證09002463號(hào)

    百度提供支持

    經(jīng)營(yíng)性網(wǎng)站備案信息

    網(wǎng)絡(luò)110報(bào)警服務(wù)

    中國(guó)互聯(lián)網(wǎng)舉報(bào)中心

    北京互聯(lián)網(wǎng)違法和不良信息舉報(bào)中心

    • 「碼字計(jì)劃」:拿萬元寫作基金!
    • Python薪資多少?
    • ?

    登錄

    注冊(cè)

    ?

    ?

    總結(jié)

    以上是生活随笔為你收集整理的QImage 图像处理的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。