how to convert pixel value to 0 and 1 only or (0 and 255) only?

8 vues (au cours des 30 derniers jours)
yasmin ismail
yasmin ismail le 15 Oct 2023
Commenté : Dyuman Joshi le 16 Oct 2023
I tried to used (rgb2gray) and (imbinarize) for each image but I cannt get only 1 and 0 value , still have 148 and others
how to fix it?
  3 commentaires
yasmin ismail
yasmin ismail le 15 Oct 2023
Modifié(e) : Walter Roberson le 15 Oct 2023
@Dyuman Joshi thanks alot
but I got another error as following:
im = imread('Label7027_157.png');
im_gray2 = rgb2gray(im);
im_bin2 = imbinarize(im_gray2);
all(ismember(im_bin2,[0 1]),'all')
im = imread('new7027-157.png');
im_gray1 = rgb2gray(im);
im_bin1 = imbinarize(im_gray1);
all(ismember(im_bin,[0 1]),'all')
%%Jcard index
A = imread(im_bin1);
BW_groundTruth =imread('im_bin2');
similarity = jaccard(A, BW_groundTruth)
Error using imread>parse_inputs (line 504)
The file name or URL argument must be a character vector or string scalar.
Error in imread (line 342)
[source, fmt_s, extraArgs, was_cached_fmt_used] = parse_inputs(cached_fmt, varargin{:});
Error in trial2 (line 25)
A = imread(im_bin1);
how to fix it?
Image Analyst
Image Analyst le 15 Oct 2023
Don't call imread (you already did that) and don't put quotes around im_bin2 in this line:
BW_groundTruth = imread('im_bin2');
Do this instead:
BW_groundTruth = im_bin2;

Connectez-vous pour commenter.

Réponse acceptée

Dyuman Joshi
Dyuman Joshi le 15 Oct 2023
Use the binary images obtained via imbinarize as the input to jaccard -
im2 = imread('Label7027_157.png');
im_gray2 = rgb2gray(im2);
im_bin2 = imbinarize(im_gray2);
all(ismember(im_bin2,[0 1]),'all')
ans = logical
1
im1 = imread('new7027-157.png');
im_gray1 = rgb2gray(im1);
im_bin1 = imbinarize(im_gray1);
all(ismember(im_bin1,[0 1]),'all')
ans = logical
1
%% Jcard index
similarity = jaccard(im_bin1,im_bin2)
similarity = 0.1260
  2 commentaires
yasmin ismail
yasmin ismail le 15 Oct 2023
@Dyuman Joshi thanks alot for your help, my last question do you have any suugestion to improve the smilarity between the two images , i used label app to labeled crack in the original attached image(7027-157.png), then I got the labed image (label 7027_157.png) and i compared it with (new7027_157.png) .I applied jaccard index but as you know creating ground truth doesnt give accurate result although if you see the labeled and (new7027_157.png) approximatly same , so is there another way to measure similarity instead of jaccard indix , like compare number of pixels or anything else. I am not expert in image processing and new biggener in matlab. I appreciate your help
Dyuman Joshi
Dyuman Joshi le 16 Oct 2023
@yasmin ismail, That question is not related to your original question. Also, it is more related to Image processing than it is related to MATLAB. So, I will not be answering it (nor do I have enough experience with Image processing).
So, if my answer solved the questions you have asked, please consider accepting it.

Connectez-vous pour commenter.

Plus de réponses (0)

Community Treasure Hunt

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

Start Hunting!

Translated by