Maltlab изменяет размер изображения - PullRequest
0 голосов
/ 24 октября 2018

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

Вот вопрос в книге.

Читать вthe images rice.png и cameraman.tif Найти все пиксели, для которых rice имеет значение, большее, чем у cameraman и скопируйте соответствующие пиксельные значения в изображение оператор (используйте функцию matlab find )

Так вот мой коддля этого

A=imread('rice.png');
B=imread('cameraman.tif');
%-------------------------------------------------------------------------
%Assign the C variable to the find function to find all the value of in the
%Image A that are large than B

C=find(A>B);
%--------------------------------------------------------------------------
%Displays all the values in A that are large than B
A(C);
%------------------------------------------------------------------------
D=imresize(B,size(C));


imshow(D)

Но когда я запускаю код, я получаю следующее

Предупреждение: изображение слишком велико для размещения на экране;отображается в 2%

В images.internal.initSize (строка 71)

В imshow (строка 328)

В восемь (строка 13)

edit: теперь я думаю, что я не думаю, что изменяю размер изображения, а использую значения пикселей для удаления чего-либо из изображения, как в моем новом коде.

%Ex 2.4
A=imread('rice.png');
B=imread('cameraman.tif');


%-------------------------------------------------------------------------
%Assign the C variable to the find function to find all the value of in the
%Image A that are large than B
C=find(A>B);
%--------------------------------------------------------------------------
%Displays all the values in A that are large than B
%A(C);
%------------------------------------------------------------------------
B(C)=C; 
imshow(B)


%-----------------------------------------------------------------------

Это вопрос?просит, как честность я не уверен

1 Ответ

0 голосов
/ 25 октября 2018

Вы рядом.C содержит линейные индексы, соответствующие пикселям, где интенсивность A> B. B (C) = C назначает линейные индексы как интенсивность, вместо этого попробуйте присвоить значения в A, соответствующие индексам C, значению B.

B(C) = A(C);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...