2015-10-10 1 views
0
I = imread('data1.jpg') 
[p3, p4] = size(I); 
q1 = 50; % size of the crop box 
i3_start = floor((p3-q1)/2); % or round instead of floor; using neither gives warning 
i3_stop = i3_start + q1; 

i4_start = floor((p4-q1)/2); 
i4_stop = i4_start + q1; 

I = I(i3_start:i3_stop, i4_start:i4_stop, :); 
figure ,imshow(I); 

Я запустить этот код и получить эту ошибку "Индекс превышает размеры матрицыim новинка in matlab. поэтому мне нужна помощь. им пытаются сделать это кодирование, но эта ошибка

Ошибка в ==> croptry в 10 I = I (i3_start:. i3_stop , i4_start: i4_stop, :); "

Может кто-нибудь помочь мне исправить эту ошибку? Я хочу обрезать изображение в центре

ответ

1

Ошибка, вероятно, связана с тем, как вы вызываете functin size.

Если матрица I, в котором вы загрузить изображение является три-мерного (N х М х К), вы должны вызвать size этот путь:

[p3, p4, p5] = size(I) 

то есть, путем добавления дополнительного параметра (в этом случае «p5»).

Если вы звоните size как:

[p3, p4] = size(I) 

p4 будет установлен на произведение второго и третьего измерения вашей матрицы I

Обновленный код

I = imread('pdb_img_1.jpg'); 
% Modified call to "size" 
% [p3, p4] = size(I) 
[p3, p4, p5] = size(I) 
% Increased the size of the "crop box" 
q1 = 150; % size of the crop box 
i3_start = floor((p3-q1)/2) % or round instead of floor; using neither gives warning 
i3_stop = i3_start + q1 

i4_start = floor((p4-q1)/2) 
i4_stop = i4_start + q1 

I = I(i3_start:i3_stop, i4_start:i4_stop, :); 
figure 
imshow(I) 

Исходное изображение

enter image description here

кадрирования enter image description here Надеюсь, что это помогает.

+0

спасибо вам большое, потому что помогите мне исправить эту ошибку. оно работает. спасибо – user5405704

+0

Добро пожаловать! Счастлив, что я тебе полезен. Возможно, вы захотите принять ответ, чтобы закрыть вопрос :-) –

+0

@ user5405704 Рассмотрите возможность принятия ответа как действительного;) https://meta.stackexchange.com/questions/5234/how-does-accepting-an-answer- работа –

Смежные вопросы