I can't receive output using imshow() after imbinarize() function in my Image Processing job.
13 vues (au cours des 30 derniers jours)
Afficher commentaires plus anciens
Hi everybody!
I read 2 images to the workspace and prior to applying XOR operator, I'm trying to Binarize the input images using imbinarize() function, however, I receive an error using imshow() to display. I appreciate any assistance in resolving the issue.
Here is the code:
I1 = imread('D:/i_p_pics/Bird_1.jpg');
I2 = imread('D:/i_p_pics/Bird_2.jpg');
BW1 = imbinarize(I1);
BW2 = imbinarize(I2);
output = xor(BW1,BW2);
subplot(321); imshow(I1); title('First Image');
subplot(322); imshow(I2); title('Second Image');
subplot(323); imshow(BW1); title('First Binary Image');
subplot(324); imshow(BW2); title('Second Binary Image');
subplot(325); imshow(output); title('XORED Image');
Here is the error:
common_args.CData = validateCData(common_args.CData,image_type);
Error in images.internal.imageDisplayParseInputs (line 78)
common_args = images.internal.imageDisplayValidateParams(common_args);
Error in imshow (line 245)
images.internal.imageDisplayParseInputs({'Parent','Border','Reduce'},preparsed_varargin{:});
Error in oh (line 19)
subplot(323); imshow(BW1); title('First Binary Image');
0 commentaires
Réponses (2)
Image Analyst
le 16 Avr 2022
Try this:
I1 = imread('Bird_1.jpg');
I2 = imread('Bird_2.jpg');
% The BW are 3-D images because I1 and I2 were RGB.
% Process only the blue channel, which has the most contrast.
BW1 = imbinarize(I1(:, :, 3));
BW2 = imbinarize(I2(:, :, 3));
output = xor(BW1,BW2);
subplot(321); imshow(I1); title('First Image');
subplot(322); imshow(I2); title('Second Image');
subplot(323); imshow(BW1); title('First Binary Image');
subplot(324); imshow(BW2); title('Second Binary Image');
subplot(325); imshow(output); title('XORED Image');
2 commentaires
Image Analyst
le 16 Avr 2022
Arash, the original problem was that imbinarize will binarize each plane it it's an RGB image, which is what you werer giving it. So it's a 3-D logical image, which imshow doesn't handle.
If it answered your question, the usual thing to do is to click the "Accept this Answer" link 🙂, unless you want to wait for better ones.
dhivya
le 14 Mar 2023
hello,everyone i want 2 shares from this code and at the last line i use xor oprtion to reteive the original binary image.But i cannot retrieve it.Anyone pls suggest me quickly.(i take one binary image and generate two shares,after perfom xor opeartion restore original binary image)
S = imread('text input.png');
meven = [0 0 0; 0 1 1; 1 0 1; 1 1 0];
modd = [0 0 1; 0 1 0; 1 0 0; 1 1 1];
no = 1;
y = zeros(size(S));
R = zeros(size(S));
l = zeros(size(S));
for i = 1:size(S,1)
for j = 1:size(S,2)
if (S(i, j) == 0)
r = rand([no,2^no-1]);
disp(r)
ro = round(r);
ro = ro+1;
R(i,j) = meven(ro,1);
l(i,j) = meven(ro,2);
else
r = rand([no,2^no-1]);
disp(r)
ro = round(r);
ro = ro+1;
R(i,j) = modd(ro,1);
l(i,j) = modd(ro,2);
end
y(i,j) = S(i,j);
c=xor(R,l);
end
end
1 commentaire
Image Analyst
le 14 Mar 2023
Voir également
Produits
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!