error using imsubtract

8 次查看(过去 30 天)
Megah Putri
Megah Putri 2011-8-18
I've been using imsubtract, i want to replace the background with black, but why that appear only in black ... no image object .. what is wrong ...?

回答(3 个)

Alex Taylor
Alex Taylor 2011-9-12
Megah,
I'd also recommend that you use the MATLAB minus operator instead of imsubtract to perform elementwise subtraction on two images:
image3 = im2double(image1) - im2double(image2)
The imadd and imsubtract functions are old and predate support for integer math in base MATLAB.
The MATLAB math operators are better maintained and in general will exhibit better performance:
>> a = rand(4000,4000); >> b = rand(4000,4000);
>> tic; for i = 1:100; imsubtract(a,b); end; toc
Elapsed time is 17.827151 seconds.
>> tic; for i = 1:100; a-b; end; toc
Elapsed time is 8.206314 seconds.
- Alex.

Wolfgang Schwanghart
Hi Megah, apparently both variables don't have the same class. Try
image3 = imsubtract(im2double(image1),im2double(BWfinal))
[edited according to WRs suggestion]
  3 个评论
Wolfgang Schwanghart
Again, I have learned something new. Thanks, Walter.
Megah Putri
Megah Putri 2011-8-18
thank you wolfgang schwanghart,,, ^_^ ,,, thank you walter roberson ^_^

请先登录,再进行评论。


Pramod Bhat
Pramod Bhat 2011-8-25
convert them to the same class. both the images shud be in the same format.

Community Treasure Hunt

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

Start Hunting!

Translated by