Форум программистов, компьютерный форум, киберфорум
C++ Builder
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.57/7: Рейтинг темы: голосов - 7, средняя оценка - 4.57
fa52

Jpeg & ScanLine

17.11.2011, 23:23. Показов 1465. Ответов 1
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Простая задача: загрузить в 2 TImage 2 jpg-картинки из файлов и сравнить их, например, статистически (max, min, mean...). Значит, используем TJPEGImage, можно через RegisterFileFormat или без, LoadFromFile, Assign и, наконец, ScanLine с byte-вектором, чтобы добраться до пикселя. Тут и начинаются чудеса. В отличие от статистики по изображению, получаемой, например, в известной программе ImageJ (Analyze/Measure) подобные расчеты в BC++B или CodeGear дают другие результаты. Причем, если в ImageJ формат одного и того же изображения (bmp или jpg), естественно, не влияет на результат, то здесь для bmp (8b) те же цифры, а для jpg (24b, но тоже полутоновое изображение 0-255) - отличные. TJPEGImage-свойство Grayscale выставлено в true. Как же получать те же значения пикселя, что и в bmp-копии?
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
17.11.2011, 23:23
Ответы с готовыми решениями:

ScanLine - свойство класса TBitmap->scanline[]
уважаемое сообщество не могу составить себе чёткое представление о ScanLine нет нигде толкового описания. ScanLine-это указатель на...

Работа со scanline
Так и не смог разобраться как работать со scanline. Его посоветовали, т. к. GetPixel очень сильно лагает при сложных операциях. Есть...

ScanLine не сканлайнит
Здравствуйте! Пытаюсь преобразовать картинки одного из векторов в серые. (имеются 2 вектора с одинаковыми изображениями) ...

1
872 / 448 / 35
Регистрация: 25.10.2011
Сообщений: 910
17.11.2011, 23:32
Лучший ответ Сообщение было отмечено как решение

Решение

Работает с 32bit, для 24bit с использование ScanLine увы ничего не имею (но формат изменить 1 секунду). Вообщем, мб полезно будет.

Функция преобразования из хауса цвета в 32bit:
C++
1
2
3
4
5
6
7
8
9
10
11
TColor To32bit(long ColorValue)
{
   ColorValue&=0x00FFFFFF;
   long ColorRed = ColorValue;
   ColorRed&=0xFF0000; ColorRed/=0x10000;
   long ColorGreen = ColorValue;
   ColorGreen&=0x00FF00;
   long ColorBlue = ColorValue;
   ColorBlue&=0x0000FF; ColorBlue*=0x10000;
   return TColor(ColorRed|ColorGreen|ColorBlue);
};
Применение:
C++
1
2
3
4
TColor *Array = (TColor*)MyImage->ScanLine[(int)y];
//...
TColor Select = To32bit(Array[(int)x];
//...
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
17.11.2011, 23:32
Помогаю со студенческими работами здесь

ScanLine работает некорректно
Здравсвтуйте, вот такая функция: void __fastcall TForm1::Button1Click(TObject *Sender) { Graphics::TBitmap *pBitmap = new...

Это что за иероглифы? if(!((a-4)&~7)&&!!(a-4))
Случайно наткнулся, выражение if(a>=5 & a<=11) "проще" записывается так: if(!((a-4)&~7)&&!!(a-4)) Фигасе проще, что они...

JPEG->MemoryStream = 120тиков а JPEG->Image1 и Image1->MemoryStream = 30тиков?
Добрый вечер. Впринципе название темы все объясняет. Ради любопытства думал что может по умолчанию размер JPEGa не задан и он кроме рисунка...

Вывод типа, универсальные ссылки, cannot bind lvalue to && и другие
Доброго дня, товарищи. Вот код: Вот отчет компиля: Объясните мне, пожалуйста, где я не прав. Каким образом константный lvalue литерал...

Оператор && - добавить в одну строчку Memo текст с ListBox1 и ListBox2
значит нужно добавить в одну строчку Memo текст с ListBox1 и ListBox2 хотел реализовать через оператор "и" && но видает...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Новые блоги и статьи
модель ЗдравоСохранения 8. Подготовка к разному выполнению заданий
anaschu 08.04.2026
https:/ / github. com/ shumilovas/ med2. git main ветка * содержимое блока дэлэй из старой модели теперь внутри зайца новой модели 8ATzM_2aurI
Блокировка документа от изменений, если он открыт у другого пользователя
Maks 08.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа, разработанного в конфигурации КА2. Задача: запретить редактирование документа, если он открыт у другого пользователя. / / . . .
Система безопасности+живучести для сервера-слоя интернета (сети). Двойная привязка.
Hrethgir 08.04.2026
Далее были размышления о системе безопасности. Сообщения с наклонным текстом - мои. А как нам будет можно проверить, что ссылка наша, а не подделана хулиганами, которая выбросит на другую ветку и. . .
Модель ЗдрввоСохранения 7: больше работников, больше ресурсов.
anaschu 08.04.2026
работников и заданий может быть сколько угодно, но настроено всё так, что используется пока что только 20% kYBz3eJf3jQ
Дальние перспективы сервера - слоя сети с космологическим дизайном интефейса карты и логики.
Hrethgir 07.04.2026
Дальнейшее ближайшее планирование вывело к размышлениям над дальними перспективами. И вот тут может быть даже будут нужны оценки специалистов, так как в дальних перспективах всё может очень сильно. . .
Горе от ума
kumehtar 07.04.2026
Эта мне ментальная установка, что вот прямо сейчас, мол, мне для полного счастья не хватает (нужное вписать), и когда я этого достигну - тогда и полный кайф. Одна из самых сильных ловушек на пути. . . .
Использование значений реквизитов справочника в документе, с определенными условиями и правами
Maks 07.04.2026
1. Контроль срока действия договора Алгоритм из решения ниже реализован на примере нетипового документа "ЗаявкаНаРаботу", разработанного в конфигурации КА2. Задача: уведомлять пользователя, если. . .
Доступность команды формы по условию
Maks 07.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: сделать доступной кнопку (команда формы "ЗавершитьСписание") при. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru