MATLAB Answers

0

matlab code

clear
clc
d1=120; d2=94;
I =imread('C:\Users\SAMA CENTER\Desktop\girl.jpg');
J = imresize(I,[200 250]);
X = rgb2gray(I);
Y=X';
for k1=1:d1
for k2=1:d2
B(2*k1,k2)=X(k1, k2);
B(2*k1-1,k2)=floor((X(k1,k2)+X(2*k1-1,k2))/2);
end
end
imshow(B);
What's wrong with this code?? there is some wrong with the floor function what is it ???

  댓글 수: 2

Chandra Kurniawan on 10 Mar 2012
Please show me the error message!
noor
on 10 Mar 2012
??? Attempted to access X(213,1); index out of bounds because size(X)=[212,320].
Error in ==> floor at 12
B(2*k1-1,k2)=floor((X(k1,k2)+X(2*k1-1,k2))/2);

로그인 to comment.

답변 수: 2

Answer by Chandra Kurniawan on 10 Mar 2012
 Accepted Answer

The error message sounds you accessed X(213,1) while the size of X is 212x320
X is a gray image generated from command : X = rgb2gray(I);
so, the original image I has 212x320 dimension.

  댓글 수: 2

noor
on 10 Mar 2012
so what can i do ??
Chandra Kurniawan on 10 Mar 2012
You wrote the code d1=120 and also wrote B(2*k1,k2)
So, ideally the image must have minimum 2*120 x 94 dimension.
You can resize the image.
J = imresize(I,[240 94]);
Then followed with :
X = rgb2gray(J);

로그인 to comment.


Answer by 777
on 10 Mar 2012

your code has x(2*k1-1) ,so when the value of k1=120 you reach a value which is out of bounds for x.

  댓글 수: 0

로그인 to comment.



Translated by