华南农业大学|图像处理与分析技术综合测试|题目解答:求芒果单层坏损率

news/2024/7/21 3:52:28 标签: 图像处理, 计算机视觉

设计任务

对于一幅芒果果实内部的 CT 断层图像,试采用图像处理与分析技术,设计适当的算法和程序,首先分割出其中的坏损区域,然后计算其像素面积占整个果肉区域的百分比(单层坏损率)。请按统一要求写出算法原理、设计流程,并完成测试分析等报告内容。

算法设计

解题思路:二值化图像,使用一个背景值0、芒果区域值为1的图像A,与经过二值化及中值滤波的芒果CT图像C异或,得到与除了坏损区域值为1,其他区域皆为0的图像B。计算图像A和B值为1像素点个数分别为cnt1和cnt2,单层坏损率即为cnt2/cnt1。

设计方案说明使用matlab的库。

关键算法的设计原理

形态学闭运算:消除黑色小区域

异或:像素点值相同则为0,不同为1

算法步骤

读入图像→中值滤波→二值化图像得图像C→形态学闭运算得图像A→A与C异或得图像B→统计图像A和B值为1像素点个数→计算单层坏损率

程序设计

算法名称:中值滤波、二值化图像、形态学闭运算、异或

工具函数medfilt2、imbinarize、imclose、xor

设计分析完成任务。

测试分析

图1

图1从左到右,为原图→均值滤波后图→二值化图→闭运算图→闭运算图与均值滤波图异或图

其中二值化函数(Otsu方法)阈值取0.55,即BW=imbinarize(G,0.55);

闭运算使用半径为10的盘形结构元素。

特点与优势:算法简单,使用滤波去噪。

存在的问题和不足:“闭运算图与均值滤波图异或图”左下方有白色点,误识别。 

matlab代码

clc,clear
A=imread('ipa05.bmp');
G=medfilt2(A);
BW=imbinarize(G,0.55);
guo=imclose(BW,strel('disk',10)); 
huai=xor(guo,BW);
huai_cnt=sum(sum((huai)));
guo_cnt=sum(sum((guo)));
disp("单层坏损率:");
disp(num2str(huai_cnt/guo_cnt))
figure
subplot(151),imshow(A)
subplot(152),imshow(G)
subplot(153),imshow(BW)
subplot(154),imshow(guo)
subplot(155),imshow(huai)


http://www.niftyadmin.cn/n/320955.html

相关文章

存储程序

有时候,为了完成一个常用的功能需要执行多条语句,而每次都在客户端中一条一条的输入这么多语句是很烦的。而存储程序就可以解决这个烦恼,它可以封装很多语句,然后为用户提供一种简单 方式来调用这个程序。 存储程序分为存储历程&…

在Pytorch中使用Tensorboard

Tensorboard是一款深度学习可视化软件,目前主要使用了它的可视化模型, 可视化模型权重和可视化损失函数功能。 x.1 tensorboard初始化 tensorboard初始化需要导入SummaryWriter包并指定存储位置和开放端口号。 from torch.utils.tensorboard import SummaryWrite…

Spring Boot 集成 Phoenix + HBase

本文默认已安装好HBase1.4.7,不再介绍Docker 安装HBase 并使用_羁客%的博客-CSDN博客Windows 安装 HBase 单机_羁客%的博客-CSDN博客 一.安装python apk add --no-cache python 二.下载|解压Phoenix wget https://archive.apache.org/dist/phoenix/apache-phoenix-4.13.1-…

0511课后作业(C高级)

1.编写一个名为myfirstshell.sh的脚本,它包括以下内容。 1、包含一段注释,列出您的姓名、脚本的名称和编写这个脚本的目的 2、和当前用户说“hello 用户名” 3、显示您的机器名 hostname 4、显示上一级目录中的所有文件的列表 5、显示变量PATH和HOM…

DCGAN--Keras实现

文章目录 一、Keras与tf.keras?二、keras中Model的使用三、使用Keras来实现DCGan1、导入必要的包2.指定模型输入维度:图像尺寸和噪声向量 的长度3、构建生成器4、构造鉴别器5、构建并编译DCGan6、对模型进行训练7、显示生成图像8、运行模型 总结 一、Ker…

操作系统实验二 进程(线程)同步

前言 实验二相比实验一难度有所提升,首先得先掌握好相应的理论知识(读者-写者问题和消费者-生产者问题),才能在实验中得心应手。任务二的代码编写可以借鉴源码,所以我们要先读懂源码。 1.实验目的 掌握Linux环境下&a…

uniapp制作水印相机给图片添加水印并且保存图片至本地

uniapp保存文件的三种方式 文件主要分为两大类: 1.代码包文件:代码包文件指的是在项目目录中添加的文件。 2.本地文件:通过调用接口本地产生,或通过网络下载下来,存储到本地的文件。 其中本地文件又分为三种&#…

掌控MySQL并发:深度解析锁机制与并发控制

前一篇MySQL读取的记录和我想象的不一致——事物隔离级别和MVCC 讲了事务在并发执行时可能引发的一致性问题的各种现象。一般分为下面3种情况: 读 - 读情况:并发事务相继读取相同的记录。读取操作本身不会对记录有任何影响,不会引起什么问题&…