Original image size 769*770, I am geting error as dimension mismatch

1 回表示 (過去 30 日間)
vetri veeran
vetri veeran 2014 年 11 月 24 日
回答済み: Jan 2014 年 11 月 24 日
Original image size 769*770
org_im=imread('picture1.jpg');
[rows,columns,numberofcolorbands]=size(org_im)
if numberofcolorbands >1 org_im=org_im(:,:,2); end
org_im=im2double(org_im);
figure(1); imshow(org_im);title('Original Image')
f=zeros(771,772); [m,n]=size(f); f(769,770)=size(org_im);
I am getting an error as,
Subscripted assignment dimension mismatch.
Error in sobelmaskspat_d (line 23) f(769,770)=size(org_im);
How to overcome this,
please help me.
Thank you
  1 件のコメント
Jan
Jan 2014 年 11 月 24 日
Please post the complete error message.

サインインしてコメントする。

採用された回答

Jan
Jan 2014 年 11 月 24 日
f(769,770) = size(org_im);
The right hand side replies a vector, but the left hand side is one element of a matrix, a scalar. We cannot guess what this line should do. So please explain this detail.
If you want to pad a matrix by zeros:
f = zeros(771,772);
f(2:770, 2:771) = org_im;

その他の回答 (1 件)

Guillaume
Guillaume 2014 年 11 月 24 日
What are you trying to do with that line anyway?
size(org_im) is at least a 1x2 array, possibly a 1x3 array if you have colour channels. You're trying to store that array in the single element at (769, 770) of f. Since you can only put one value there, it's never going to work.
  2 件のコメント
vetri veeran
vetri veeran 2014 年 11 月 24 日
my original image size is 769*770
I created an array with zeros as
f=zeros(771,772);
In the newly created zero padded array ie) in 771*772, I want to place image 769*770.
How can i achieve this.
Thank you
Guillaume
Guillaume 2014 年 11 月 24 日
f = zeros(size(org_im) + 2); %no need to hardcode the size
f(2:end-1, 2:end-1) = org_im;
Or, if you have the image processing toolbox, use padarray
f = padarray(org_im, [1 1]);

サインインしてコメントする。

カテゴリ

Help Center および File ExchangeLogical についてさらに検索

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by