How do I compare two images?
Mostrar comentarios más antiguos
Hi
I have two images.

.jpg)
One was manually segmented and the other used an automated method. Both images segments the same interface, but the automated is cropped for faster computation.
I am looking for a method, to compare the two images, so I can estimate the accuracy of the automated segmentation. How can I compare them? E.g. how can I find whether the red pixels locations at both images are the same. If not, how do I define their differences?
Any ideas?
Thank you
Respuestas (2)
Walter Roberson
el 18 de Mzo. de 2019
1 voto
In the case where the two images are to the same scale, then use xcorr2 to find the place where the second image best fits into the first, after which you can do whatever comparisons using indexing.
If the images are not the same scale (e.g., the second one looks like it might be higher resolution) then you would need to do image registration in order to find the best match.
5 comentarios
Stelios Fanourakis
el 18 de Mzo. de 2019
Walter Roberson
el 19 de Mzo. de 2019
You probably need to crop down to the central area and then rgb2gray to get a 2D array that can be put through xcorr2. However I do not think that xcorr2 is suitable for operating on different scales.
Image Analyst
el 19 de Mzo. de 2019
I also don't think xcorr2() is needed. You know where your automated algorithm cropped it, so you can simply use that information to extract the same rectangular ROI from your original, full-sized image, and THEN do the comparison. However I recommend using the method I mentioned rather than trying to find the red lines from each of the two images. I mean, you already have the coordinates of the red lines anyway since you used something like plot() to put them up there. You just need to subtract the cropping offset from the first one. You can use the (x,y) coordinates of the red lines with poly2mask() to create a binary image from which you compute the Sørensen–Dice simlarity index. I think I have a demo if you want it.
Stelios Fanourakis
el 19 de Mzo. de 2019
Stelios Fanourakis
el 19 de Mzo. de 2019
Image Analyst
el 18 de Mzo. de 2019
0 votos
You have two ways of computing the segmentation. Which do YOU consider to be more accurate? If you want to compute accuracy, you must have some ground truth - some segmentation that YOU DEFINE to be the absolutely 100% correct answer. I'm assuming you think the manually traced one is the ground truth and want to see how well the automatic algorithm matches the manual one. To do that, you first need to crop out the regions so that both images have the same field of view (all corners point to the same physical points in the subject/sample in both images). Now you can crop the segmented (binary) images the same way and compare them with a similarity index, for example, the Sørensen–Dice coefficient or friends. See this link.
4 comentarios
Stelios Fanourakis
el 19 de Mzo. de 2019
Stelios Fanourakis
el 19 de Mzo. de 2019
Editada: Stelios Fanourakis
el 19 de Mzo. de 2019
Stelios Fanourakis
el 19 de Mzo. de 2019
Stelios Fanourakis
el 19 de Mzo. de 2019
Categorías
Más información sobre Template Matching en Centro de ayuda y File Exchange.
Productos
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!