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

матрицы и изображения

06.11.2013, 15:47. Показов 2029. Ответов 4
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
здравствуйте, нужна помощь:
идет чтение изображения размером(mxn), из него нужно вытащить квадратные сегменты заданного размера, чтобы из сегментов тоже получалась матрица.
например вот исходная матрица-картинка 16х16 пикс:

Matlab M
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
I =
 
  155  164  155  246  164    7  164  155    7    7    7  155    7    7  155  155
  164    7  164  247  247   82  247  155    7  247  247  164    7    7  164  164
  164  247  247    7  164  247  247  164  247   82  247  247  247  164  247  247
    7  164  247  247  247  247    7  247  247  247    7    7  247  164    7  247
  164  247  247  164    7  155  247  247    7  247    7   82  247  164  247  247
  155    7  247  247    7  164  247  164  247  247    7  247  164  155    7  155
    7    7  247  247  247  247  247  247  247  164  247  247  247    7    7    7
    7    7  247    7  247  247  247  164    7  164  247    7  247    7    7  155
  247  247    7  164    7    7    7  164  247  247  247  247  164    7    7  155
  164  247  164  247  247  164    7    7  247  247  247  155  164  164  164  164
  247   82  247  247  164    7  247  247  247  164  247    7    7  247    7  247
  164  247  164  247  247  247  247    7  247    7  247  155   82  247  247  247
  247    7  247    7  247    7  247    7    7  247  247    7    7   82  164    7
  247  247    7    7    7  247  247  247    7  247    7    7  247  247  247  247
    7  247    7  247  247  247    7  247   82  247    7    7  164  247  164  247
  155  247  247    7   82  164  247  247  247  164    7    7  164  247    7  247


нужно чтобы например

Matlab M
1
2
3
4
5
6
L(2:2) = 
 
7   155 247   7
7   164 247 164
247 247 247 247
247 247 247 164
код уменя во такой:
Matlab M
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
I = imread('gray.bmp');%чтение изображения
 
a=4;%размер сегмента
 
[m,n] = size(I);%размер изображения
 
segm = abs(m/a);%целых сегментов по m
segn=abs(n/a);% целых сегментов по n
seg = zeros(segm,segn);% пустая матрица для сегмента
 
for i=1:segm
    for j=1:segn
            
       
                
                 seg = I((i-1)*a+1:i*a,(j-1)*a+1:j*a);% выделение сегмента
    
                L(i,j) = seg;   
                 
                 
    end
end    
                 
disp(size(I));
disp(L(:));

выдает ошибку в строке 19 - Subscripted assignment dimension mismatch.

с размерностями косяк.

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

Добавлено через 5 часов 47 минут
Цитата Сообщение от Lelik_343 Посмотреть сообщение

L(2:2) =
7 155 247 7
7 164 247 164
247 247 247 247
247 247 247 164
там ошибка. правильно так -

Matlab M
1
2
3
4
5
6
L(2:2) = 
 
7   155 247 247
7   164 247 164
247 247 247 247
247 247 247 164
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
06.11.2013, 15:47
Ответы с готовыми решениями:

Масштабироване матрицы изображения
Всем привет. Суть задачки следующая: есть большое изображение, из которого я плучаю часть (прямоугольную область). В этой области имеется...

Переворот матрицы~изображения.
Дана матрица HxW H – произвольное W – произвольное Реализовать функцию разворота матрицы “вверх ногами” или проще для понимания...

Фильтрация изображения с использованием матрицы
Здравствуйте, уважаемые форумчане. Подскажите, как правильно отфильтровать изображение? Допустим я хочу увеличить резкость изображения с...

4
 Аватар для Зосима
5246 / 3574 / 379
Регистрация: 02.04.2012
Сообщений: 6,477
Записей в блоге: 18
06.11.2013, 16:08
Ану, попробуй в строке 19 прописать: L(i,j) = {seg};
1
319 / 258 / 30
Регистрация: 30.03.2013
Сообщений: 755
07.11.2013, 00:29
а еще очень полезная функция im2col
ей я сейчас нарезаю матрицы для расчета локальной корреляции, работает быстро

http://www.mathworks.com/help/... m2col.html

а вот КАК ДЕЛАТЬ КРУГЛЫЕ выборки из матрицы - вопрос
или элипсоподобные ...
Буду благодарен если кто подскажет
1
0 / 0 / 0
Регистрация: 02.11.2013
Сообщений: 3
07.11.2013, 10:36  [ТС]
Зосима, пробовал, пишет:
The following error occurred converting from cell to double:
Error using double
Conversion to double from cell is not possible.


то есть опять чтото не то с типами данных.

sergsh,
спасибо за im2col, буду курить как работает.

я уже нашел то что надо - mat2cell, но нужна работа с циклами, там потом будут вложения и прерывания.
может у меня с изображением нето чтото?

вот вложил картинку с которой работаю
Вложения
Тип файла: rar gray.rar (368 байт, 2 просмотров)
0
0 / 0 / 0
Регистрация: 02.11.2013
Сообщений: 3
08.11.2013, 11:46  [ТС]
Ну вобщем решение есть, при помощи функции mat2cell и обратного перевода cell2mat
для FAQ:
Matlab M
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
i=imread('uda5.png');
I=rgb2gray(i);
[M,N] = size(I); %размер изображения
 
a=32;%размер сегмента
 
%% циклы для обрезки краев изображения
while N/a~=segn 
    I(:,N) = [];
    [M,N]= size(I);
end
 
while M/a~=segm
    I(M,:) = [];
    [M,N] = size(I);
end
 
%% перевод в ячейки
L = mat2cell(I,a*ones(fix(M/a),1),a*ones(fix(N/a),1));
 
%вывод
imshow(cell2mat(L(7,8)))
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
08.11.2013, 11:46
Помогаю со студенческими работами здесь

Представление изображения в виде матрицы
добрый день мне нужно в языке с # при загрузке бмп изображения в picturebox чтобы оно переделалось в матрицу и при нажатий на любую точку...

Передача матрицы изображения по сети
Нужно передать картинку с телефона на сервер. Для телефона пиши на Java(Android Studio), а для сервера пишу на C#(Visusl Studio 2010). В...

Отрисовка изображения поверх канвы (изображения) и вращение изображения
Здравствуйте. Столкнулся с 2умя проблемами при работе с изображениями средствами C++ Builder. Хочу сделать одну интересную штуку, но...

Сохранение canvas и создание матрицы изображения
Имеется функция, которая заполняет массив значениями. На основе массива строится canvas, и отображается в окне приложения. Суть вопроса...

Качество изображения FHD матрицы на не родном разрешении
Добрый вечер форумчане! Интересует вопрос на который я нигде не могу найти ответ. К примеру есть 2 ноута с диагональю 15.6 дюйма, на первом...


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
Отправка уведомления на почту при изменении наименования справочника
Maks 24.03.2026
Программная отправка письма электронной почты на примере изменения наименования справочника "Склады" в конфигурации БП3. Перед реализацией необходимо выполнить настройку системной учетной записи. . .
модель ЗдравоСохранения 5. Меньше увольнений- больше дохода!
anaschu 24.03.2026
Теперь система здравосохранения уменьшает количество увольнений. 9TO2GP2bpX4 a42b81fb172ffc12ca589c7898261ccb/ https:/ / rutube. ru/ video/ a42b81fb172ffc12ca589c7898261ccb/ Слева синяя линия -. . .
Midnight Chicago Blues
kumehtar 24.03.2026
Такой Midnight Chicago Blues, знаешь?. . Когда вечерние улицы становятся ночными, а ты не можешь уснуть. Ты идёшь в любимый старый бар, и бармен наливает тебе виски. Ты смотришь на пролетающие. . .
Контроль уникальности заводского номера - вариант №2
Maks 24.03.2026
В отличие от предыдущего варианта добавлено прерывание циклов, также добавлены новые переменные для сохранения контекста ошибки перед прерыванием цикла: Процедура ПередЗаписью(Отказ, РежимЗаписи,. . .
SDL3 для Desktop (MinGW): Вывод текста со шрифтом TTF с помощью библиотеки SDL3_ttf на Си и C++
8Observer8 24.03.2026
Содержание блога Финальные проекты на Си и на C++: finish-text-sdl3-c. zip finish-text-sdl3-cpp. zip
Жизнь в неопределённости
kumehtar 23.03.2026
Жизнь — это постоянное существование в неопределённости. Например, даже если у тебя есть список дел, невозможно дойти до точки, где всё окончательно завершено и больше ничего не осталось. В принципе,. . .
Модель здравоСохранения: работники работают быстрее после её введения.
anaschu 23.03.2026
geJalZw1fLo Корпорация до введения программа здравоохранения имела много невыполненных работниками заданий, после введения программы количество заданий выросло. Но на выплатах по больничным это. . .
Контроль уникальности заводского номера - вариант №1
Maks 23.03.2026
Алгоритм контроля уникальности заводского (или серийного) номера на примере документа выдачи шин для спецтехники с табличной частью в конфигурации КА2. Данные берутся из регистра сведений, по. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru