2014-02-18 3 views
0
image=double(imread('ooutput.jpg')); 
[M, N]=size(image); 
    masked=zeros(M,N); 
    masked(1:100,1:90)=255; 
    masked(175:300,1:90)=255; 
    imshow(masked); 
    new=uint8(masked&image); 
    imshow(new); 

я использовал логический и получить часть image.Here маски создаются и логически, и с image.I я не в состоянии получить portion.instead получить полный черный пиксель . Может ли кто-нибудь указать, что является ошибкой в ​​вышеуказанном коде?логических и изображений в MATLAB

ответ

2

'masked & image' is 1 или 0. Используя uint8, оба объекта близко к черному. Кроме этого, ваш код не для всех типов изображений, кроме серой шкалы UINT 8.

Чтобы устранить проблему маски, использование:

image=imread('ooutput.jpg'); 
masked=false(M,N); 
masked(1:100,1:90)=true; 
masked(175:300,1:90)=true; 
image(~masked)=0 
imshow(image); 
+0

ok.I хотят сделать операцию маски с помощью логического элемента И .Первый я хочу создать маску и когда эта маска применяется к каждому изображению, я получаю требуемый результат. – kadu

+1

Вы можете использовать только логические и для двоичных изображений. – Daniel

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