Построить гистограмму определенного изображения

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
X-BOND
Реалист
Реалист
 
Сообщения: 944
Зарегистрирован: 19.08.2002 (Пн) 11:44
Откуда: Ukraine

Построить гистограмму определенного изображения

Сообщение X-BOND » 04.10.2005 (Вт) 18:31

Интересует алгоритм или готовый пример.
Спасибо

tyomitch
Пользователь #1352
Пользователь #1352
Аватара пользователя
 
Сообщения: 12822
Зарегистрирован: 20.10.2002 (Вс) 17:02
Откуда: חיפה

Сообщение tyomitch » 04.10.2005 (Вт) 20:16

Ой. Объясните мне кто-нибудь, что такое "гистограмма изображения" - давно хотел узнать.
Изображение

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 04.10.2005 (Вт) 21:43

Наконец-то я тебе страшно отомщу :)
http://www.google.ru/search?hl=ru&q=def ... %D0%B0&lr=
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас

tyomitch
Пользователь #1352
Пользователь #1352
Аватара пользователя
 
Сообщения: 12822
Зарегистрирован: 20.10.2002 (Вс) 17:02
Откуда: חיפה

Сообщение tyomitch » 04.10.2005 (Вт) 22:20

Распределение яркости? Так это и есть ответ: посчитать яркость для всех точек изображения, разбить в K<=256 корзин, и нарисовать график.

Для получения яркости точки по RGB есть уже упоминавшаяся мной API ColorRGBToHLS.
Последний раз редактировалось tyomitch 05.10.2005 (Ср) 16:30, всего редактировалось 1 раз.
Изображение

X-BOND
Реалист
Реалист
 
Сообщения: 944
Зарегистрирован: 19.08.2002 (Пн) 11:44
Откуда: Ukraine

Сообщение X-BOND » 05.10.2005 (Ср) 14:15

Эта, можно подробней об этой фразе:
tyomitch писал(а):...разбить в K<255 корзин...

что такое К ?

uhm
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1597
Зарегистрирован: 02.12.2004 (Чт) 15:21

Сообщение uhm » 05.10.2005 (Ср) 15:40

Гы-ы, число корзин, а ты как думал? :lol:

Совсем научно это называется интервалами, количество интервалов=количество столбиков диаграммы. В простейшем случае, количество интервалов совпадает с количеством градаций яркости, т. е. 256.

Алгоритм в этом случае совсем простой - заводишь массив [0 To 255], пробегаешь по всем точкам, вычисляешь яркость и увеличиваешь соответствующий элемент массива на 1.
Быть... или не быть. Вот. В чём вопрос?

X-BOND
Реалист
Реалист
 
Сообщения: 944
Зарегистрирован: 19.08.2002 (Пн) 11:44
Откуда: Ukraine

Сообщение X-BOND » 05.10.2005 (Ср) 19:10

Вот чего получилось.
Правильно это или нет?


P.S.
Маленькая поправка: не 255 а 240
Вложения
HistogrammTest.zip
Типа, гистограмма :)
(18.15 Кб) Скачиваний: 72

uhm
Продвинутый гуру
Продвинутый гуру
Аватара пользователя
 
Сообщения: 1597
Зарегистрирован: 02.12.2004 (Чт) 15:21

Сообщение uhm » 06.10.2005 (Чт) 10:56

Вроде бы, то, только у тебя на твоих гистограммках масштаб не учитывается, т. е. если в один интервал попадет слишком много значений, он просто вылезет за пределы видимой части Picture.
Быть... или не быть. Вот. В чём вопрос?


Вернуться в Visual Basic 1–6

Кто сейчас на конференции

Сейчас этот форум просматривают: AhrefsBot, Yandex-бот и гости: 21

    TopList