如何使用带有原始图像轮廓的分割图像在matlab

时间:2016-05-09 08:32:25

标签: matlab image-segmentation

我有分割图像,我使用这个命令imcontour(original_image,1)得到原始图像的轮廓然后我用这个代码来计算matlab中的jaccard索引。我是matlab的新手请帮助我。这是我用过的代码

 function [jaccardIdx,jaccardDist] = jaccard_coefficient(img_Orig,img_Seg)  
   img_Orig = logical(img_Orig);
   img_Seg = logical(img_Seg);
   if ~islogical(img_Orig)
        error('Image must be in logical format');
   end
   if ~islogical(img_Seg)
        error('Image must be in logical format');
   end
   inter_image = img_Orig & img_Seg;
   union_image = img_Orig | img_Seg;
   jaccardIdx = sum(inter_image(:))/sum(union_image(:));
   jaccardDist = 1 - jaccardIdx;

但是在2张图片相交时,错误就是Matrix尺寸必须达成一致,我无法解决。谢谢提前帮助我。

1 个答案:

答案 0 :(得分:0)

阅读完您的评论后,我了解失败的原因是您使用的是不同尺寸的矩阵:地面实况图像大于分割图像([121 167] vs [120 161])。< / p>

通常,这些图像应具有相同的大小,以便计算ir jaccard索引。你需要检查为什么你首先得到不同的尺寸。

如果您100%确定它不是错误,您可以根据基本事实的大小执行分割图像的大小调整:

segImage = imresize(segImage,size(origImage));