2014 dxdy logo

Научный форум dxdy

Математика, Физика, Computer Science, Machine Learning, LaTeX, Механика и Техника, Химия,
Биология и Медицина, Экономика и Финансовая Математика, Гуманитарные науки




Начать новую тему Ответить на тему
 
 Гистограмма изображения на Maltab
Сообщение11.11.2007, 11:44 
Аватара пользователя


24/10/05
400
Пытаюсь построить гистограмму изображения в Матлабе. Из книги Гонсалеса набрал текст программы. Но ничего не работает. В чем возможна проблема??
[code]

>> a=imread('qqq.bmp');
>> ih=imhist(a);
[/code]
Ругается на [code]

??? Function IMHIST expected its first input, I or X, to be two-dimensional.

Error in ==> imhist>parse_inputs at 216
iptcheckinput(a, {'double','uint8','logical','uint16','int16','single'}, ...

Error in ==> imhist at 57
[a, n, isScaled, top, map] = parse_inputs(varargin{:});

[/code]

 Профиль  
                  
 
 Re: Гистограмма изображения на Maltab
Сообщение11.11.2007, 15:48 
Аватара пользователя


24/10/05
400
как построить гистограмму серого изображения я понял, а вот как посторить гистограмму цветного изображения не получается. Подскажите плиз.

 Профиль  
                  
 
 
Сообщение11.11.2007, 17:09 


26/05/06
44
antoshka1303 писал(а):
как построить гистограмму серого изображения я понял, а вот как посторить гистограмму цветного изображения не получается. Подскажите плиз.

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

для цветного изображения можешь сделать отдельно гистограмму для каждого из каналов RGB

 Профиль  
                  
 
 
Сообщение12.11.2007, 13:58 
Аватара пользователя


24/10/05
400
Invisible писал(а):
antoshka1303 писал(а):
как построить гистограмму серого изображения я понял, а вот как посторить гистограмму цветного изображения не получается. Подскажите плиз.

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

для цветного изображения можешь сделать отдельно гистограмму для каждого из каналов RGB
сейчас попробую

 Профиль  
                  
 
 манипуляция с гистограммой в матлабе
Сообщение12.11.2007, 22:28 
Аватара пользователя


24/10/05
400
Постороил гистограмму изображения. Как получить доступ к элементам гистограммы, чтобы можно было подвинуть, умножить на число или произвести некоторые действия с гистограммой изображения?
Всем заранее спасибо за ответы!

 Профиль  
                  
 
 
Сообщение13.11.2007, 09:17 


26/05/06
44
antoshka1303 Изменяй само изображение, а не гистограмму
так как гистограмма это только инструмент для оценки распределения уровней серого или какого то из каналов цветного изображения

Прибавляя к картинке значение, ты сдвигаешь гистограмму в право тоесть делаешь картинку светлее

Есть еще способ линейного растягивания, эквализации гистограммы и другие..

 Профиль  
                  
 
 
Сообщение14.11.2007, 13:22 
Аватара пользователя


24/10/05
400
[quote="Invisible"][b]antoshka1303[/b] Изменяй само изображение, а не гистограмму
так как гистограмма это только инструмент для оценки распределения уровней серого или какого то из каналов цветного изображения

Прибавляя к картинке значение, ты сдвигаешь гистограмму в право тоесть делаешь картинку светлее

Есть еще способ линейного растягивания, эквализации гистограммы и другие..[/quote]
я знаю про способы лин. растяжения,эквализации и др. Проблема в том, что меня хотят, чтобы я все это написал,не пользуюсь втроенными функциями матлаба, а ручками...а хорошего мануала по матлабу нема, разьме только хелп.Вот и сижу разбираюсь...

 Профиль  
                  
 
 
Сообщение16.11.2007, 09:38 


26/05/06
44
antoshka1303 что тебе именно надо написать ?
Эквализацию гистограммы, линейное растяжение ...
уточни задание

 Профиль  
                  
 
 
Сообщение16.11.2007, 12:45 
Аватара пользователя


24/10/05
400
Invisible писал(а):
antoshka1303 что тебе именно надо написать ?
Эквализацию гистограммы, линейное растяжение ...
уточни задание

линейное растяжение.
я задал интервал,который нужно растянуть.И построил линейную функцию G(i)=a+b*H(i),
где H-гистограмма изображения.Теперь хотел построить новую гистограмму по вышеописанной формуле.
Код:
for i=1:1:256
    G(i)=a+b*H(i);
end
imshow(G);
imhist(G);
но строиться почему-то только 1палочка в гистограмме...что я не так делаю?

 Профиль  
                  
 
 
Сообщение16.11.2007, 15:48 


26/05/06
44
antoshka1303 писал(а):
for i=1:1:256

1, зачем ты указываешь что шаг 1 имхо это лишнее он итак будет один
пиши просто for i=1:256

2, ты делаешь цикл от 1 до 256
256 это количество уровней серого
ты должен делать цикл по размерности твоей картинки
например если у тебя картинка размером 8х8
то тебе надо делать цикл for i=1:64
так как ты присваиваешь новый уровень сероого, новому значению пиксела

3, по поводу G(i)=a+b*H(i);
Оставь гистограмму в покое, она тебе только для вывода данных служит инструментом, изменять ее бессмысленно в данной задаче
гистограмма это обычный массив, который показывает количество пикселей для определенного уровня серого

4, Если ты просто делаешь линейное растяжение
то тебе не надо строить цикл и мучать гистограмму
если допустим G это изображение G=imread('image.bmp');

То когда ты пишешь G_new=G*b+a;
когда ты прибавляешь/умножаешь число к картинке, это число прибавляется/умножается ко всем пикселам картинки

 Профиль  
                  
 
 
Сообщение03.12.2007, 22:26 
Аватара пользователя


24/10/05
400
Invisible писал(а):
antoshka1303 писал(а):
for i=1:1:256

1, зачем ты указываешь что шаг 1 имхо это лишнее он итак будет один
пиши просто for i=1:256

2, ты делаешь цикл от 1 до 256
256 это количество уровней серого
ты должен делать цикл по размерности твоей картинки
например если у тебя картинка размером 8х8
то тебе надо делать цикл for i=1:64
так как ты присваиваешь новый уровень сероого, новому значению пиксела

3, по поводу G(i)=a+b*H(i);
Оставь гистограмму в покое, она тебе только для вывода данных служит инструментом, изменять ее бессмысленно в данной задаче
гистограмма это обычный массив, который показывает количество пикселей для определенного уровня серого

4, Если ты просто делаешь линейное растяжение
то тебе не надо строить цикл и мучать гистограмму
если допустим G это изображение G=imread('image.bmp');

То когда ты пишешь G_new=G*b+a;
когда ты прибавляешь/умножаешь число к картинке, это число прибавляется/умножается ко всем пикселам картинки

ничего не понял.%(

 Профиль  
                  
 
 
Сообщение04.12.2007, 09:26 


26/05/06
44
antoshka1303 писал(а):
ничего не понял.%(

что конкретно не понял?

 Профиль  
                  
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 12 ] 

Модераторы: Karan, Toucan, PAV, maxal, Супермодераторы



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

Сейчас этот форум просматривают: нет зарегистрированных пользователей


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group