实例1:计算二值分割图像的dice相似系数

实例2:计算多区域分割图像的dice相似系数

本例程的配套完整源码和图片素材下载

描述:

similarity = dice(BW1,BW2) 计算二进制图像BW1BW2之间的Sørensen-Dice相似系数(BW为二值图像)

similarity = dice(L1,L2) 计算标签图像L1L2中的每个标签的Dice索引(L为标签图像)

similarity = dice(C1,C2) 计算分类图像C1和 C2中的每个类别的Dice索引(C为分类图像)

实例1:计算二值分割图像的dice相似系数

close all;clear all;
A = imread('hands1.jpg');%读取一张带有对象的RGB图像以进行分割
I = im2gray(A);%将RGB图像A转换为灰度图像I
figure
imshow(I)%显示灰度图像I
title('Original Image')%添加标签
%使用主动轮廓(snakes)方法去分割这只手
mask = false(size(I));%创建一个与图像I一样尺寸大小的值都为0(纯黑)的图像mask
%调整mask区域值,x轴为(25~X_max_size-25),y轴为(25~Y_max_size-25)的区域赋值为1(纯白)
mask(25:end-25,25:end-25) = true;
BW = activecontour(I, mask, 300);%调用activecontour函数,默认300次迭代进行图像I的分割
figure
imshow(BW)%显示活动轮廓分割后的二值图像BW
title('Activecontour_segmentation Image')%添加标签BW_groundTruth = imread('hands1-mask.png');%读取一张真实分割了的手的二值图像
%计算活动轮廓分割后的图像BW与真实分割图像BW_groundTruth之间的dice相似系数
similarity = dice(BW, BW_groundTruth);%调用dice函数
figure
imshowpair(BW, BW_groundTruth)%以不同颜色显示图像BW和BW_groundTruth
title(['Dice Index = ' num2str(similarity)])%添加标签,显示dice相似系数

        

                        输入初始图像I                   活动轮廓(300次迭代)分割图像BW         比较两张图像(BW和BW_groundTruth)的相似系数

将活动轮廓方法的迭代次数设定为100、500、3000次时效果分别为:

         

   比较两张图像的相似系数(100次迭代)                 比较两张图像的相似系数(500次迭代)            比较两张图像的相似系数(3000次迭代)

注:BW_groundTruth 为真实分割了的手的二值图像

注:关于基于Matlab的主动轮廓 (snake) 方法进行图像分割介绍及实例效果前点击

实例2:计算多区域分割图像的dice相似系数

%计算多区域分割图像的dice相似系数
%这个例子展示了读取一幅有多个区域要分割的图像,然后将其分割到多个区域
%并计算每个区域的dice相似系数
close all;clear all;
RGB = imread('yellowlily.jpg');%读取一张RGB图像
figure,
imshow(RGB)
title('Original Image')%添加标签
%创建三个区域的涂鸦,以区分他们的典型颜色特征,区域由一个4元素的向量指定
%其元素表示(选取区域ROI左上角的x坐标,选取区域ROI左上角的y坐标,ROI的宽度,ROI的高度)%创建区域1,将黄花进行分类
region1 = [350 700 425 120]; %区域1 [x y w h] format
BW1 = false(size(RGB,1),size(RGB,2));%创建一个与RGB图像一样尺寸的值都为0(纯黑)的图像BW1
%将BW1图像中region1区域范围值赋值为1(纯白)
BW1(region1(2):region1(2)+region1(4),region1(1):region1(1)+region1(3)) = true;
figure,
imshow(BW1)
title('Seed Regions 1:黄花')%添加标签%创建区域2,将绿色的茎和叶进行分类
region2 = [800 1124 120 230];%区域2
BW2 = false(size(RGB,1),size(RGB,2));%创建一个与RGB图像一样尺寸的值都为0(纯黑)的图像BW2
%将BW2图像中region2区域范围值赋值为1(纯白)
BW2(region2(2):region2(2)+region2(4),region2(1):region2(1)+region2(3)) = true;
figure,
imshow(BW2)
title('Seed Regions 2:绿色的茎和叶')%添加标签%创建区域3,对棕色的污物进行分类
region3 = [20 1320 480 200; 1010 290 180 240];%区域3(两个独立小块组成)
BW3 = false(size(RGB,1),size(RGB,2));%创建一个与RGB图像一样尺寸的值都为0(纯黑)的图像BW3
%将BW3图像中region3区域范围值赋值为1(纯白)
BW3(region3(1,2):region3(1,2)+region3(1,4),region3(1,1):region3(1,1)+region3(1,3)) = true;
BW3(region3(2,2):region3(2,2)+region3(2,4),region3(2,1):region3(2,1)+region3(2,3)) = true;
figure,
imshow(BW3)
title('Seed Regions 3:棕色的污物')%添加标签figure,
imshow(RGB)%显示图像RGB
hold on
%visboundaries(BW)表示在当前轴上绘制二进制图像BW中前景区域的边界。
%BW是二维的二进制图像,其中逻辑为真的像素属于前景区域,逻辑为假的像素构成背景
visboundaries(BW1,'Color','r');%在RGB图像上以红色显示种子区域图像BW1的前景区域
visboundaries(BW2,'Color','g');%在RGB图像上以绿色显示种子区域图像BW2的前景区域
visboundaries(BW3,'Color','b');%在RGB图像上以蓝色显示种子区域图像BW3的前景区域
title('Seed Regions')%添加标签%对选取了三个种子区域的图像RGB使用基于测地距离的颜色分割方法进行分割
L = imseggeodesic(RGB,BW1,BW2,BW3,'AdaptiveChannelWeighting',true);
%读取一张真实分割了的二值图像
L_groundTruth = double(imread('yellowlily-segmented.png'));
%直观比较基于测地距离的颜色分割和真实分割图像结果,label2rgb(L)根据标记矩阵L转换为不同颜色的RGB图像
Z = label2rgb(L);
D = label2rgb(L_groundTruth);
figure,
imshow(Z)
title('基于测地距离的颜色方法分割结果')%添加标签figure,
imshow(D)
title('真实分割了的分割结果')%添加标签
% montage({label2rgb(L),label2rgb(L_groundTruth)})%将两张标签图像进行单副显示
% title('Comparison of Segmentation Results (Left) and Ground Truth (Right)')%计算每个分割区域的dice相似系数
similarity = dice(L, L_groundTruth)

      

              区域1(Seed Regions 1)                       区域2(Seed Regions 2)                          区域3(Seed Regions 3) 

  

                     输入初始图像I                      各区域对应输入图像位置图像

          

 基于测地距离的颜色方法分割结果图            真实分割了的分割结果图        各分割区域的dice相似系数(分别对应区域1-3)

结论:可见第二个区域的dice相似系数明显较小。这一结果与分割结果的视觉对比是一致的,分割结果错误地将图像右下角的污垢也分类为绿叶

注:

1、dice相似系数,以数值标量数值向量的形式返回,其值在[0,1]范围内。相似系数( similarity )为1所表示的是,在两个图像中的分割是一个完美的匹配。

2、如果输入数组是二进制图像,相似系数( similarity )是一个标量

3、如果输入数组是标签图像,相似系数( similarity )是向量,其中第一个系数是标签1的Dice索引,第二个系数是标签2的Dice索引,依此类推。

4、如果输入数组是分类图像,相似系数( similarity )是向量,其中第一个系数是第一类的Dice索引,第二个系数是第二类的Dice索引,依此类推

参考链接

Matlab图像分割---使用dice相似系数方法进行图像分割精度验证相关推荐

  1. matlab做偏最小二乘法(PLSR)(无精度验证)

    版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明. 本文链接:https://blog.csdn.net/revitalise/article/d ...

  2. led的伏安特性曲线 matlab实现_一种基于MATLAB的分析避雷器伏安特性的方法与流程...

    本发明属于电力电子技术领域,涉及一种基于MATLAB的分析避雷器伏安特性的方法. 背景技术: 目前,我国±1100kV特高压直流输电工程建设正在稳步推进,特高压直流系统用金属氧化物避雷器是直流输电系统 ...

  3. 谱密度 matlab,(完整word版)功率谱密度估计方法的MATLAB实现

    功率谱密度估计方法的MATLAB实现 在应用数学和物理学中,谱密度.功率谱密度和能量谱密度是一个用于信号的通用概念,它表示每赫兹的功率.每赫兹的能量这样的物理量纲.在物理学中,信号通常是波的形式,例如 ...

  4. matlab形态学降噪,基于MATLAB的荧光分子图像降噪方法

    基于MATLAB的荧光分子图像降噪方法 [摘要]:医学成像是一种身体内部的视觉显示的技术,用于临床分析和医学干预.其目它旨在揭示身体的内部结构,以便进行诊断和治疗.医学成像产生了大量数据,可形成常规解 ...

  5. matlab传热分析,基于matlab的超临界流体对流传热可视化分析方法

    基于matlab的超临界流体对流传热可视化分析方法 [技术领域] [0001]本发明涉及一种基于MATLAB的管内超临界流体对流传热可视化分析方法,属于MATLAB应用技术领域. [背景技术] [00 ...

  6. 验证matlab设计的滤波器,一种数字滤波器的设计及验证方法与流程

    本发明涉及一种数字滤波器的设计及验证方法,属于数字信号处理技术领域. 背景技术: 当今,数字信号处理技术正飞速的发展,它不但成为一门学科,更是以不同的形式影响和渗透到其他的学科,因此受到人们普遍的关注 ...

  7. matlab优化函数 remez,基于Matlab的FIR滤波器的优化设计方法

    通过实例介绍了基于MATLAB的FIR滤波器的优化设计方法.3种结果比较发现,在同样阶数下,优化设计可以获得最佳的频率特性和衰耗特性. 数字滤波在数字信号处理中,占有重要的地位.数字滤波包括FIR和I ...

  8. 【图像分割】基于 C-V模型水平集图像分割Matlab代码

    1 简介 图像分割是计算机视觉中的关键步骤之一.传统的分割方法由于方法自身的局部性,难以满足复杂分割的要求,基于水平集方法的图像分割研究正是这种需求下出现的.C-V模型对灰度图像的变化处理非常自然,解 ...

  9. 医学图像分割之 Dice Loss

    医学图像分割之 Dice Loss 在很多关于医学图像分割的竞赛.论文和项目中,发现 Dice 系数(Dice coefficient) 损失函数出现的频率较多,自己也存在关于分割中 Dice Los ...

最新文章

  1. 从零开始实现主成分分析(PCA)算法
  2. woocommerce产品选项卡描述_适合WooCommerce卖家的7款Dropshipping插件+功能介绍
  3. 无盘机服务器,无盘服务器操作系统
  4. SqlSession的使用范围---Mybatis学习笔记(五)
  5. java数组与C++数组间的区别
  6. [论文阅读] Maintaining Discrimination and Fairness in Class Incremental Learning
  7. LWIP_STM32_ENC28J60_NETCONN_TCP_CLIENT(4)
  8. Topcoder SRM 144 DIV 1
  9. 滤波器: 滤波器设计软件
  10. 代数数论初步(全书)
  11. 微表情测试软件排行榜,微表情心理测试分析系统:以“微”见智,识情绪辨人心...
  12. 搜集百度关键词的相关网站、生成词云
  13. IT行业都有什么职位?
  14. lan和adsl是什么信号_路由器上的adsl是什么意思【图】
  15. 人参鹿鞭片39.9/花花公子裤子29/除螨仪9.9/三合一数据线8.8/阿迪达斯沐浴露39.9/超多好物你等!...
  16. CAD内容很少,文件很大清理无效
  17. WML信息查询与后端信息发布系统实现-java -(报告+源码)
  18. 电商服务器性能测试,如何测试分析电商网站的性能瓶颈(一)
  19. ec java sm2证书_国密算法SM2证书制作
  20. 自己动手,丰衣足食------Rust实现自己的Stream

热门文章

  1. Python数据可视化整理
  2. Linux 修改系统时间的两种方式
  3. HTTP之Chunk
  4. 服务器被腾讯云助手告警通知有木马文件
  5. 搜索引擎蜘蛛的基本原理
  6. java 打印菱形和空心菱形
  7. java处理解析xml文件的几种方法及每种方法的区别
  8. 【C语言】—— qsort()函数的使用
  9. cad导入新的线型、填充图案、字体压缩包
  10. [转]Unity3D新手教学,让你十二小时,从入门到掌握!(一)