定义ARGB像素结构typedefu
io
ARGBColorstructBYTEBlueBYTEGree
BYTERedBYTEAlphaARGBQuadPARGBQuad
图像数据data灰度化VOIDGrayBitmapDatadataPARGBQuadpPARGBQuaddataSca
0INToffsetdataStridedataWidthsizeofARGBQuad
forUINTy0ydataHeightyBYTEpoffsetforUINTx0xdataWidthxppBluepGree
pRedUINTpBlue29pGree
150pRed771288
f图像数据data灰度同时二值化,threshold阀值VOIDGrayA
d2ValuesBitmapDatadataBYTEthresholdPARGBQuadpPARGBQuaddataSca
0INToffsetdataStridedataWidthsizeofARGBQuad
forUINTy0ydataHeightyBYTEpoffsetforUINTx0xdataWidthxpifpBlue29pGree
150pRed771288thresholdpColor0xff000000elsepColor0x00ffffff
下面是使用BCB2007和GDI图像数据实现图像灰度和二值化的例子代码:
锁定GDI位位图扫描线到dataFORCEINLINEVOIDLockBitmapGdiplusBitmapbmpBitmapDatadataGdiplusRectr00bmpGetWidthbmpGetHeightbmpLockBitsrImageLockModeReadImageLockModeWritePixelFormat32bppARGBdata
fGDI位图扫描线解锁FORCEINLINEVOIDU
lockBitmapGdiplusBitmapbmpBitmapDatadatabmpU
lockBitsdatavoid__fastcallTForm1Butto
1ClickTObjectSe
derGdiplusBitmapbmp
ewGdiplusBitmapL