celtics
November 27th, 2003, 12:21 PM
Sorry, for multiple posts here. i am new and made errors.
this is for my biology project.
my B&W image has gray scale problem. it looks good for most part. needs to be smoothed uniformaly. Dark areas need to be dark uniformaly without any fuzziness or impurities of other colors. I do not know the image processing terms for it.(maybe gamma is the proper term for it).
How to (modify)Or(add to)) this header to improve maybe contrast,gamma?. MFC/SDI.
Celtics
LPBITMAPINFO PbmiHeader = (LPBITMAPINFO)new BYTE[sizeof(BITMAPINFOHEADER) + 256 * sizeof(RGBQUAD)];
PbmiHeader->bmiHeader.biSize = sizeof(BITMAPINFOHEADER);
PbmiHeader->bmiHeader.biWidth = Width;
PbmiHeader->bmiHeader.biHeight = Height;
PbmiHeader->bmiHeader.biPlanes = 1;
PbmiHeader->bmiHeader.biBitCount = 8;
PbmiHeader->bmiHeader.biCompression = 0;
PbmiHeader->bmiHeader.biSizeImage = 0;
PbmiHeader->bmiHeader.biXPelsPerMeter = 0;
PbmiHeader->bmiHeader.biYPelsPerMeter = 0;
PbmiHeader->bmiHeader.biClrUsed = 0;
PbmiHeader->bmiHeader.biClrImportant = 0;
for(int i=0; i<256; i++) {
PbmiHeader->bmiColors[i].rgbBlue = i;
PbmiHeader->bmiColors[i].rgbGreen = i;
PbmiHeader->bmiColors[i].rgbRed = i;
PbmiHeader->bmiColors[i].rgbReserved = 0;
}
HDC hdc = pDC->GetSafeHdc();
StretchDIBits( hdc, 0, 0,
Width1,
Height1,
0, 0,
Width,
Height,
data,
PbmiHeader,
DIB_RGB_COLORS,
SRCCOPY );
this is for my biology project.
my B&W image has gray scale problem. it looks good for most part. needs to be smoothed uniformaly. Dark areas need to be dark uniformaly without any fuzziness or impurities of other colors. I do not know the image processing terms for it.(maybe gamma is the proper term for it).
How to (modify)Or(add to)) this header to improve maybe contrast,gamma?. MFC/SDI.
Celtics
LPBITMAPINFO PbmiHeader = (LPBITMAPINFO)new BYTE[sizeof(BITMAPINFOHEADER) + 256 * sizeof(RGBQUAD)];
PbmiHeader->bmiHeader.biSize = sizeof(BITMAPINFOHEADER);
PbmiHeader->bmiHeader.biWidth = Width;
PbmiHeader->bmiHeader.biHeight = Height;
PbmiHeader->bmiHeader.biPlanes = 1;
PbmiHeader->bmiHeader.biBitCount = 8;
PbmiHeader->bmiHeader.biCompression = 0;
PbmiHeader->bmiHeader.biSizeImage = 0;
PbmiHeader->bmiHeader.biXPelsPerMeter = 0;
PbmiHeader->bmiHeader.biYPelsPerMeter = 0;
PbmiHeader->bmiHeader.biClrUsed = 0;
PbmiHeader->bmiHeader.biClrImportant = 0;
for(int i=0; i<256; i++) {
PbmiHeader->bmiColors[i].rgbBlue = i;
PbmiHeader->bmiColors[i].rgbGreen = i;
PbmiHeader->bmiColors[i].rgbRed = i;
PbmiHeader->bmiColors[i].rgbReserved = 0;
}
HDC hdc = pDC->GetSafeHdc();
StretchDIBits( hdc, 0, 0,
Width1,
Height1,
0, 0,
Width,
Height,
data,
PbmiHeader,
DIB_RGB_COLORS,
SRCCOPY );