Форум программистов, компьютерный форум, киберфорум
Matlab
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.95/22: Рейтинг темы: голосов - 22, средняя оценка - 4.95
1 / 1 / 0
Регистрация: 10.04.2012
Сообщений: 23

Яркость ли изображения я считываю командой I(i,j)?

10.04.2012, 21:05. Показов 4757. Ответов 10
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
В обработке изображения необходимо работать с яркостями пикселов. Вызывая определенный пиксел изображения I(i,j) , матлаб в командную строку выдает значения от 0 до 1, хотя яркости идут от 1 до 256. Мб яркость конкретного пиксела вызывается как то по другому ? Что тогда я получал в моем случае?
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
10.04.2012, 21:05
Ответы с готовыми решениями:

Не меняется яркость и контрастность изображения
Здравствуйте! Есть картинка чертежа, полученная при печати из автокада в формате png, но она тусклая и плохо видна из-за большого...

Изменить яркость/контрастность изображения
Как сделать настройку яркости и контрастности с помощью trackbar

Вычислить среднюю яркость пикселей изображения
Подскажите, как можно вычислить среднюю яркость пикселей изображения? Ну, или контрастность?

10
2014 / 1286 / 61
Регистрация: 05.06.2010
Сообщений: 2,213
10.04.2012, 21:16
Amigo90, все зависит от формата изображения. Приведи код(и само изображение не забудь прикрепить), посмотрим
1
1 / 1 / 0
Регистрация: 10.04.2012
Сообщений: 23
10.04.2012, 21:55  [ТС]
С этим разобрался, у меня стояла ф-ция rgb2gray. Но появилась новая проблема. Мне необходима выполнять манипуляции со значениями яркостей. Скажем мне нужно сложить несколько яркостей:
Matlab M
1
2
3
4
5
6
7
8
9
10
I= imread(FullName);
I=rgb2gray(I);
 
[m,n]=size(I)
for i=1:m;
    for j=1:n;
        s=s+I(i,j);
    end;
end;
s
s =

255

как такое может быть? должно было быть несколько тысяч. Т.е я так понимаю он s воспринимает как изображения, а нужно что бы оно было переменной, как сделать?
0
2014 / 1286 / 61
Регистрация: 05.06.2010
Сообщений: 2,213
10.04.2012, 22:03
Цитата Сообщение от Amigo90 Посмотреть сообщение
I=rgb2gray(I);
I будет uint8. Максимальное значение 255, остальное будет обрезаться. Попробуй привести к даблу:
Matlab M
1
2
3
4
5
6
s = 0;
for i=1:m;
    for j=1:n;
        s=s+double(I(i,j));
    end;
end;
2
1 / 1 / 0
Регистрация: 10.04.2012
Сообщений: 23
10.04.2012, 22:08  [ТС]
Я перепутал, в предыдущем посте. У меня изначально стояла ф-ция I=im2double(I); Я так понимаю она меняет тип данных с целочисленных на дробный верно ?
Так как вы предложили работает, но это мне придется перед каждой манипуляцией с изображением добавлять дабл?
0
2014 / 1286 / 61
Регистрация: 05.06.2010
Сообщений: 2,213
10.04.2012, 22:15
Цитата Сообщение от Amigo90 Посмотреть сообщение
перед каждой манипуляцией
ну это смотря какие манипуляции. Если ты складываешь все пиксели(зачем такое может понадобиться?), то конечно одного байта не хватит. Кстати, не обязательно к даблу приводить, есть и другие форматы, но так наверняка(гарантировано все влезет)
1
1 / 1 / 0
Регистрация: 10.04.2012
Сообщений: 23
10.04.2012, 22:19  [ТС]
Цитата Сообщение от vital792 Посмотреть сообщение
I будет uint8. Максимальное значение 255, остальное будет обрезаться.
Это как раз устраивает. Дело в том что переменные к которым я плюсую тоже больше 255 не становятся. Вопрос почему...

Добавлено через 3 минуты
Ну например ищю дисперсию:
Matlab M
1
2
3
4
5
6
7
8
9
10
d=0;
sum=0;
for a=1:m;
    for b=1:m;
    d=d+RI(a,b);
    sum=sum+1;
    end;
   
end;
disp=(d/(m*m))*(d/(m*m));
Или опять же мне необходимо сложить сумму значений яркостей нескольких изображений... Можно как то сделать? Почему при uint8 это касается не только изображений но и переменных ?
0
2014 / 1286 / 61
Регистрация: 05.06.2010
Сообщений: 2,213
10.04.2012, 22:22
Цитата Сообщение от Amigo90 Посмотреть сообщение
Почему при uint8 это касается не только изображений но и переменных ?
А они автоматически приводятся к тому же типу, какое имеет присваиваемое значение. Если не нравится каждый раз приводить к нужному типу, можно изначально привести к даблу всю матрицу изображения:
Matlab M
1
2
I=rgb2gray(I);
I = double(I);
Но при больших размерах картинки, такая операция отъест памяти изрядно...
1
1 / 1 / 0
Регистрация: 10.04.2012
Сообщений: 23
10.04.2012, 22:28  [ТС]
Хм, а нельзя как нибудь сделать что бы они автоматически не меняли размерность ?

p.s. чем тогда отличается im2double от double?

Добавлено через 2 минуты
Цитата Сообщение от vital792 Посмотреть сообщение
Если не нравится каждый раз приводить к нужному типу, можно изначально привести к даблу всю матрицу изображения:
не подошло, картинка превратилась просто в белую....
0
2014 / 1286 / 61
Регистрация: 05.06.2010
Сообщений: 2,213
10.04.2012, 22:37
Цитата Сообщение от Amigo90 Посмотреть сообщение
а нельзя как нибудь сделать что бы они автоматически не меняли размерность ?
не знаю, но похоже нельзя.
Цитата Сообщение от Amigo90 Посмотреть сообщение
чем тогда отличается im2double от double?
im2double еще нормирует (максимальное значение будет не 255, а 1)

Цитата Сообщение от Amigo90 Посмотреть сообщение
не подошло, картинка превратилась просто в белую....
А перед рисованием конвертируй обратно в uint8)
Matlab M
1
2
3
4
5
FullName = 'c:\Lenna.jpg';
I= imread(FullName);
I=rgb2gray(I);
I = double(I);
imagesc(uint8(I));
1
1 / 1 / 0
Регистрация: 10.04.2012
Сообщений: 23
10.04.2012, 22:41  [ТС]
Спасибо, буду пробовать!
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
10.04.2012, 22:41
Помогаю со студенческими работами здесь

Как менять контрастность и яркость изображения?
Как, к примеру, сменить яркость в picturebox?

Как программно настроить яркость и контрастность изображения на C#, платформа WPF?
Изображение загружается из графического файла (*.jpg, *.png и т.п.), и нужно реализовать программно (C#, WPF) изменение его...


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

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
Новые блоги и статьи
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
Фото: Daniel Greenwood
kumehtar 13.11.2025
Расскажи мне о Мире, бродяга
kumehtar 12.11.2025
— Расскажи мне о Мире, бродяга, Ты же видел моря и метели. Как сменялись короны и стяги, Как эпохи стрелою летели. - Этот мир — это крылья и горы, Снег и пламя, любовь и тревоги, И бескрайние. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru