Non-singleton dimensions of the two input arrays must match each other.
2 Ansichten (letzte 30 Tage)
Ältere Kommentare anzeigen
Stelios Fanourakis
am 27 Mär. 2018
Kommentiert: Stelios Fanourakis
am 28 Mär. 2018
I cannot understand what's the problem. This code works for other jpg images but for my dicom stack of images it comes up with an error (see subject line), to the _Background_blending = bsxfun(@times, Background, bsxfun(@minus,1,alpha)); line. PLease Help. Thanks!
Foreground = im2double(mask)*350-50;
Background = im2double(I);
% build alpha layer for Foreground
alpha = bsxfun(@times, ones(size(Foreground,1), size(Foreground,2)), .6);
figure(3)
imshow(alpha)
% find a scale dynamically with some limit
Foreground_min = min( min(Foreground(:)), -50 );
Foreground_max = max( max(Foreground(:)), 300 );
% overlay the image by blending
Background_blending = bsxfun(@times, Background, bsxfun(@minus,1,alpha));
0 Kommentare
Akzeptierte Antwort
Walter Roberson
am 27 Mär. 2018
Your code overuses bsxfun. You only need at most one bsxfun call.
Your code probably reduces down to
Background_blending = Background .* (1-0.6);
Anyhow, your bug is in assuming that mask and "I" have the same number of rows and columns (but possibly different numbers of planes).
4 Kommentare
Walter Roberson
am 27 Mär. 2018
Yes, what I said about mask and "I" having different numbers of rows and columns really is my answer to your earlier problem. The fact that it worked on some jpeg images does not tell us anything useful, because we do not know that the jpeg images had the same number of rows and columns as the dicom images, and we have no information about the size of mask or the size of "I". If you had posted more complete code we might have been able to tell you why the sizes were not the same.
Weitere Antworten (0)
Siehe auch
Kategorien
Mehr zu 3-D Volumetric Image Processing finden Sie in Help Center und File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!