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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 人工智能 > 循环神经网络 >内容正文

循环神经网络

matlab 16位灰度值转8位,在matlab中如何将灰度值为24位的转化为8?

發布時間:2023/12/9 循环神经网络 41 豆豆
生活随笔 收集整理的這篇文章主要介紹了 matlab 16位灰度值转8位,在matlab中如何将灰度值为24位的转化为8? 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

我使用的是Visual c++6。0技術內幕里提供的類CDib來操作位圖,最好提供可以兩個獨立的函數來分辨別實現著倆個功能。他們可以作為CDib類的成員函數來使用。類似下面的這個就可以,我用了下面的這個,但是下面這個不好用,處理后的圖象有許多問題,不能實現灰度化。

/*

此函數實現由24位的bmp到256色灰度圖的轉換

*/

CDib& CDib::RgbToGray()

{

//判斷dibFile是有效的24位真彩色位圖

if(m_lpBMIH->biBitCount==24 && m_nColorTableEntries==0 && m_lpBMIH->biCompression==BI_RGB)//是真彩色位圖

{//先只處理擴展的Windows DIB

if((m_lpBMIH)->biSize==40){

m_nColorTableEntries=256;//修改數據成員

m_lpBMIH->biBitCount=8;

DWORD RowLength=4*(((m_lpBMIH->biWidth)*(m_lpBMIH->biBitCount)+31)/32);

m_dwSizeImage=RowLength*(m_lpBMIH->biHeight);

//分配一段保存256灰度位圖的顏色表和實際位圖的空間

DWORD NewBufSize=(DWORD)(256*sizeof(RGBQUAD)+RowLength*(m_lpBMIH->biHeight));

HGLOBAL hNewPalette=::GlobalAlloc(GHND,NewBufSize);

LPVOID lpvNewColorTable=::GlobalLock(hNewPalette);

LPBYTE lpNewImage=(LPBYTE)lpvNewColorTable+256*sizeof(RGBQUAD);

LPRGBQUAD lpvColorTable=(LPRGBQUAD)lpvNewColorTable;

//構造一個顏色表

for(int i=0;ibiHeight;j++)

{

for (long k=0;kbiWidth;k++)

{

//從位圖數據計算得到Y值,寫入新圖中

Blue=(unsigned char)(*lpOldImage++);

Green=(unsigned char)(*lpOldImage++);

Red=(unsigned char)(*lpOldImage++);

Y=(float)(Red*0。

299+Green*0。587+Blue*0。

114);

Gray=(BYTE)Y;

*(lpNewImage++)=Gray;

}

}

memcpy(m_lpImage,lpvNewColorTable,NewBufSize);

m_lpvColorTable=m_lpImage;

m_lpImage=(LPBYTE)m_lpvColorTable+256*sizeof(RGBQUAD);

::GlobalUnlock(hNewPalette);

::GlobalFree(hNewPalette);

}

else

{

AfxMessageBox("不是擴展的windows位圖");

}

}

else

{

AfxMessageBox("不是有效的真彩色位圖!");

}

MakePalette();

return *this;

}。

全部

總結

以上是生活随笔為你收集整理的matlab 16位灰度值转8位,在matlab中如何将灰度值为24位的转化为8?的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。