最简单的代码【数字图像处理】计算rice.png中米粒个数
图像处理课程上老师布置的任务,要求求出图片rice.png中米粒的个数及其各米粒的大小。
本来开始的时候我们不是很会做,就去百度或者去博客园上面查找别人的代码,发现都很长。少则三四十行,多则五六十行。一下看懂太过困难,最后老师讲解了一下,这是最终版本,不超过10行就搞定了。PS:我在CSDN上面看到别的版本是69粒,是因为它去掉了边缘部分。
I=imread('rice.png');
BG=imopen(I,strel('disk',15));
%对图像实现开运算,开运算一般能平滑图像的轮廓,消弱狭窄的部分,去掉细的突出。
% imshow(BG);
I2=imsubtract(I,BG);
% imshow(I2);
%????????
level=graythresh(I2);
bw2=im2bw(I2,level);
imshow(bw2);
[labeled,numObjects]=bwlabel(bw2,8);
max(max(labeled))
输出结果为99,故一共有99粒米
下面来讲解如何计算出该结果的,
rice.png
首先我们可以看到这张图是明暗不均的一张图片,上面的亮度比下面的亮度高,甚至还有些杂色,第一步我们要做的就是提取出背景,然后用原图减去背景图,就可以将米粒完整干净的提取出来了。
I=imread('rice.png');BG=imopen(I,strel('disk',15));
imshow(BG);I2=imsubtract(I,BG);
imshow(I2);
提取出来的背景颜色
BG:
原图减去背景颜色:
这个时候我们可以发现图中只有米粒,没有其他干扰选项了
为了便于操作我们将该图转变为二进制图片
level=graythresh(I2);
bw2=im2bw(I2,level);
imshow(bw2);
这个时候,图像的矩阵只有0和1两种数值
如下图格式
0 |
0 |
0 |
1 |
1 |
1 |
0 |
1 |
0 |
0 |
0 |
1 |
0 |
0 |
1 |
1 |
而每个米粒是由多个像素连接在一起的,我们将多个像素连在一起的一个部分称为团,比如上图有两个团,只要将判别出来有几个团,即得米粒个数。
那我们如何判别出来有几个团?
在这采取标号法,再以上图为例,
0 |
0 |
0 |
2 |
1 |
1 |
0 |
2 |
0 |
0 |
0 |
2 |
0 |
0 |
2 |
2 |
遇见第一个团,将内部所有元素标为1,遇见第二个团将所有元素标为2.直到标到最后一个元素。
level=graythresh(I2);
bw2=im2bw(I2,level);
imshow(bw2);
[labeled,numObjects]=bwlabel(bw2,8);
max(max(labeled))
然后再找出该矩阵最大的数即米粒个数
最简单的代码【数字图像处理】计算rice.png中米粒个数相关推荐
- C语言实战题目:从键盘输入数字,计算其中正数的个数,并且计算所有正数的和
C语言实战题目:从键盘输入数字,计算其中正数的个数,并且计算所有正数的和 (遇到负数跳出本次循环继续重新输入,如果遇到0,则结束输入,输出答案) [for循环结构+if选择控制结构] #include ...
- 【数字图像处理】求图像rice.png中米粒个数
图像处理课程上老师布置的任务,要求求出图片rice.png中米粒的个数及其各米粒的大小. rice.png: 大体步骤是:首先进行边缘检测,然后进行填充.然后进行开运算,可以使一些轻微连着的米粒分开来 ...
- 简单python代码实现决策树计算信息增益_python手动计算信息增益
python手动计算信息增益 2019年5月23日 17:49 by wst 算法实践 概念阐述 对于决策树, 以前看了很多遍, 但是总感觉摸不着它. 里面有个很重要的概念: 信息增益. 今天就来手动 ...
- 数字图像处理——大作业 基于车道信息的违法车辆车牌识别
数字图像处理--大作业 基于车道信息的违法车辆车牌识别 一.车牌识别研究现状与分析 二.车牌识别算法原理 2.1 车牌定位 2.1.1 基于RGB阈值的车牌区域初定位 2.1.2 基于数学形态学的车牌 ...
- 基于skimage的数字图像处理(一)——基础
数字图像处理 基础 前言 一.skimage是什么? 1.模块内容 2.安装skimage包 二.图片显示 三.图片的基本属性信息 四.图像通道 总结 前言 简单了解数字图像处理的基本概念.主要内容和 ...
- 数字图像处理资料集锦(Python、C++、Matlab)
一.Numpy的基础 python中numpy与matlab的对应关系 二. 基于skimage数字图像处理 python数字图像处理(1):环境安装与配置 python数字图像处理(2):图像的读取 ...
- 数字图像处理与机器视觉_简单自动智能识别物体程序(机器视觉+数字图像处理)...
非常好的识别物体的机器视觉程序.附有完整的说明文档和代码.代码由matlab写成,并附有测试图片.图片中含有各种物体,通过数字图像处理的知识,自动识别出图片中的各类物体. 文件:n459.com/f/ ...
- 图像找茬 matlab,数字图像处理、数学形态学、MATLAB GUI实现简单找茬软件
0.简介 这个小作品是我的数字图像处理课程设计,应用基本的图像处理知识与MATLAB的基本脚本编程,实现一个简单的找茬软件.软件实现过程中使用到的找茬游戏图片来源有"梦幻找茬".& ...
- python 图像分析自然纹理方向与粗细代码_数字图像处理与Python实现笔记之基础知识...
数字图像处理与Python实现笔记之基础知识 摘要 绪论 1 数字图像处理基础知识 1.1 数字图像简介 1.1.1 数字图像处理的目的 1.1.2 数字图像处理的应用 1.1.3 数字图像处理的特点 ...
最新文章
- VS2012设置断点的方法
- 老李分享:接口测试之jmeter
- easy ui dialog 关闭之后的怪异问题
- rand函数怎么避免重复_Excel常用的计算统计函数
- 关于区块链你了解多少,用思维导图带你快速了解区块链
- 思科模拟器中的交换机使用方法
- 无线网络连接不上请检查服务器,为什么无线网络连接不上?
- c语言程序设计基本模板,《C语言程序设计基础教程》试讲教案模板
- python股票量化分析
- mint-ui —— navbar的使用
- 软考是什么考试?软件水平考试介绍
- 【Python】 标准差计算(std)
- 也发个过VS3.0的MapHack
- SpringCloud知识概括
- RC延时电路简要分析
- 中国橱柜行业品牌营销策略与竞争态势研究报告2022版
- 网站架构(页面静态化,图片服务器分离,负载均衡)方案全解析
- linux网口初始化_Linux 初始化系统配置(CentOS 6)
- win10 汇编工具 em8086安装
- 北京科技大学通用学术英语作文Mooc 大一上(20级版)
热门文章
- LCR表和万用表有什么区别?
- spss modeler 许可证到期的解决办法
- Android上好看的倒数日APP,颜值超高的倒数日 App,让 Android 手机桌面好看 2 倍 - Hurry #Android...
- 转载:【刘铁猛】SQL速通-《教学大纲》
- 将Pic文件(jpg,bmp等)转换为Icon c#
- 建筑行业股权激励方案
- CodeForces - 437B The Child and Set 题解
- 计算机硬件故障分析和维护,计算机硬件故障分析与维护处理
- 工业大数据在铅粉机的应用(一)
- 专业外卖CPS返利系统-专业外卖CPS返利系统-外卖返利系统-美团饿了么返利系统