компьютерный вопрос

Надо конвертировать цветное изображение в изображение с 255 оттенками серого.

В инете нашел такой код, но мне он не нравится, так как он меняет старое изображение, а не создает новое из старого, а также не менят формат изображения: как было 3 байта на пиксел, так и остается.

C++:
BOOL CGrayScaleDlg::GrayScale(CBitmap &bmp)
{
BOOL bRet = FALSE;
if( bmp.GetSafeHandle() )
{
BITMAP bp;
bmp.GetBitmap(&bp);
if( bp.bmBitsPixel == 24 ) // else not supported
{
long dwCount = bp.bmWidthBytes*bp.bmHeight;
BYTE* lpBits = new BYTE[dwCount];
ZeroMemory(lpBits,dwCount);
bmp.GetBitmapBits( dwCount, lpBits );

long nCol = 0, nRow=0;
long nLineWidth = bp.bmWidthBytes;
BYTE r,g,b;
BYTE gray;
for(long i=0; i<=dwCount-3; i+=3,nCol+=3)
{
b = BYTE(0.114*lpBits[i]);
g = BYTE(0.587*lpBits[i+1]);
r = BYTE(0.299*lpBits[i+2]);
gray = b+g+r;
lpBits[i]    = gray ;
lpBits[i+1] = gray ;
lpBits[i+2] = gray ;
if( nCol >= nLineWidth)
{
nRow++;
nCol = 0;
i=nRow*nLineWidth;
}
}
bRet = (bmp.SetBitmapBits( dwCount, lpBits ) >= 0);
delete [] lpBits;
}

}
return bRet;
}
 
Действительно не то...портит старый файл и формат по сути старый.
Подумаем.
Но интереснее другое, обратное - берем Grey и нейросеть его разукрашивает...
Показываем цветное, и она учится...
 
Действительно не то...портит старый файл и формат по сути старый.
Подумаем.
Но интереснее другое, обратное - берем Grey и нейросеть его разукрашивает...
Показываем цветное, и она учится...
Ну на таком уровне все прикольно и интересно. А вот когда программируешь своими руками, то надо каждую деталь знать, и у новичков в таком случае всякий энтузиазм может пройти. Я вот раньше думал, что из цветного в grey перевести легко, думать не надо, а вот нет :)
В общем я понял, что надо чуть ли не спать со Страуструпом, чтобы преуспеть в программировании. В последнее время стараюсь так и делать. :) Вчера ложился спать, читая C++.
 
Ну на таком уровне все прикольно и интересно. А вот когда программируешь своими руками, то надо каждую деталь знать, и у новичков в таком случае всякий энтузиазм может пройти. Я вот раньше думал, что из цветного в grey перевести легко, думать не надо, а вот нет :)
В общем я понял, что надо чуть ли не спать со Страуструпом, чтобы преуспеть в программировании. В последнее время стараюсь так и делать. :) Вчера ложился спать, читая C++.
Ага, и кстати.. практика с теорией - друзья навек, согласны?
В сексологии аналогично :))
 
Ага, и кстати.. практика с теорией - друзья навек, согласны?
В сексологии аналогично :))
А разве в сексологии или психиатрии есть какая-то практика? Там же в основном работа языком в произвольной форме идет, как в философии, надо правильные слова подбирать. Это же не хирургия.
 
А разве в сексологии или психиатрии есть какая-то практика? Там же в основном работа языком в произвольной форме идет, как в философии, надо правильные слова подбирать. Это же не хирургия.
Есть :))

Начиная с массовой сексологии, где каждый этап психосексуального развития включает в себя как теоретические мечты с фантазиями, так практическую реализацию.
На каждом этапе!
 

Новые комментарии

LGBT*

В связи с решением Верховного суда Российской Федерации (далее РФ) от 30 ноября 2023 года), движение ЛГБТ* признано экстремистским и запрещена его деятельность на территории РФ. Данное решение суда подлежит немедленному исполнению, исходя из чего на форуме будут приняты следующие меры - аббривеатура ЛГБТ* должна и будет применяться только со звездочкой (она означает иноагента или связанное с экстремизмом движение, которое запрещено в РФ), все ради того чтобы посетители и пользователи этого форума могли ознакомиться с данным запретом. Символика, картинки и атрибутика что связана с ныне запрещенным движением ЛГБТ* запрещены на этом форуме - исходя из решения Верховного суда, о котором было написано ранее - этот пункт внесен как экстренное дополнение к правилам форума части 4 параграфа 12 в настоящее время.

Назад
Сверху