在Matlab中将一幅图像阈值分割二值化非常简单,若需要通过阈值th2二值化保留一些大面积的、且有灰度值含有大于th1的点的前景区域,而不需要小面积的区域(th1大于th2),这时会遇到这样的问题:当阈值选为th2时会把一些小面积区域也保留下来;若把阈值增大到th1,小面积的区域没了,但是原来大面积的区域又会减小;若要直接去掉阈值th2二值化图像中面积小于某一值的的区域,需要计算每个区域的面积,计算量大,而且有的区域中并没有含有大于th1的点。

下面利用数学形态学的方法来解决上述问题。

这里主要是采用数学形态学中的腐蚀与膨胀操作,采用均值滤波、灰度图像高阈值二值化、种子点选择、灰度图像低阈值二值化和选择滤波相结合的方法,具体来说:腐蚀过程采用均值滤波和高阈值对第一细分图像二值化,滤掉面积较小的区域,得到较大的区域,然后选择每个区域的种子点;膨胀过程采用低阈值对第一细分图像二值化,保留含有种子点的区域,其它的均过滤掉。经过腐蚀和膨胀操作后,得到所希望的结果,见下图。

程序如下:

wmf10=imread('mwf1.bmp');%读取图像

wmf1=wmf10(:,:,1);%由于是灰度图像,三个页面相同,故只对第一页面数据操作

figure(1);

subplot(121);imagesc(wmf1);colormap(gray);%显示原图象

h=fspecial('average',3);

wmf1_filted=uint8(round(filter2(h,wmf1)));

%均值滤波

th1=0.94*max(max(wmf1));

%确定阈值th1

wmf1th1=(wmf1_filted>th1);%按阈值th1二值化

[wmf1th1_label

numth1_label]=bwlabel(wmf1th1,8);

rc=zeros(2,numth1_label);%选择种子点坐标

for

i=1:numth1_label

[r c]=find(wmf1th1_label==i);

rc(1,i)=r(2);rc(2,i)=c(2);

end

r=rc(1,:);

c=rc(2,:);

coe=1.4;

th2=mean2(wmf1)+coe*std2(wmf1);

%确定阈值th2

wmf1th2=(wmf1>th2);%按阈值th2二值化

wmf1th2_select=bwselect(wmf1th2,c,r,8);

%保留含有种子点的前景区域

subplot(122);imagesc(wmf1th2_select);colormap(gray);

上述程序主要是采用了bwlabel和beselect函数,虽然没有直接使用Matlab的形态学操作的膨胀、腐蚀函数,但其实质过程和达到的效果是遵循形态学操作原理的,因而这也为形态学操作提供了其他的编程实现过程。有心的读者可以试试看,能否用dilate和erosion函数完成同样的任务

ERDAS9.1实现图像二值化

ERDAS9.1,现在可以回答怎么用ERDAS来做二值化。我觉得在ERDAS里面其实就叫做重编码(Recode)

步骤如下:

Interpreter模块/GIS Analysis/Recode

在对话框中打开你要重编码的img图像,然后指定一个保存路径。

最后点击Setup recode进入重编码,在属性表里面的New value字段里面修改属性值,一类赋值1,另一类赋值0

二值化在ENVI中可以通过band

math来实现。

band math是利用简单的算术表达式来解决波段运算的功能。

二值化的实现,需要用到band math的逻辑运算功能,具体的表达式的书写,你可以查看帮助文件,或者找一本操作指南看看。

举个例:

将某一波段中灰度值大于等于100的像元赋予10,其他的赋予20。那么表达式就写为:(b1 ge 100)*20+(b1 lt

100)*10

ge 、lt分别表示“大于等于”和“小于”

括号内是一个逻辑运算表达式,所以其返回值是0(假)和1(真)。

那么,一旦某一像元灰度值大于等于100,第一个括号返回值为1,加号之前的运算的结果就为20;当然,此时该像元得灰度值代入到第二个括号内计算的返回值为0。这样,针对着一个像元,其最终输出之后为20。

band math 就是这样一个一个像元进行计算的。

java 图像二值化阀值,阈值 二值化图像程序相关推荐

  1. Opencv3.0--第二篇【双阈值二值化图像】

    数字图像处理最主要的就是对像素进行操作,然而Opencv提供了14中像素的操作方法,但是处理速度有所不一样,常用的可以用指针进行访问,本文采用的也是用指针进行访问,其次可以采用vector容器指针的方 ...

  2. OpenCV.反阈值二值化

    反阈值二值化 反阈值二值化与阈值二值化互为逆操作.在OpenCV中该类的实现依赖于threshold() 函数.下面是该函数的声明: threshold(src, dst, thresh, maxva ...

  3. 【OpenCV 例程200篇】37. 图像的灰度化处理和二值化处理

    [OpenCV 例程200篇]37. 图像的灰度化处理和二值化处理 欢迎关注 『OpenCV 例程200篇』 系列,持续更新中 欢迎关注 『Python小白的OpenCV学习课』 系列,持续更新中 按 ...

  4. Wellner 自适应阈值二值化算法

    本篇博文来自博主Imageshop,打赏或想要查阅更多内容可以移步至Imageshop. 转载自:https://www.cnblogs.com/Imageshop/archive/2013/04/2 ...

  5. matlab确定灰度阈值T,matlab灰度图像二值化【灰度图像二值化算法研究】

    摘要: 在很多图像处理的过程中,经常需要对灰度图像进行二值化.本文对几种常用的图像二值化算法进行了阐述,并通过仿真,进行比较研究.根据实验结果,阐明了各种算法的优缺点. Abstract: The b ...

  6. OTSU_图像二值化分割阈值的算法

    简介: 大津法(OTSU)是一种确定图像二值化分割阈值的算法,由日本学者大津于1979年提出.从大津法的原理上来讲,该方法又称作最大类间方差法,因为按照大津法求得的阈值进行图像二值化分割后,前景与背景 ...

  7. 【医学图像处理】 2 灰度直方图、图像二值化(阈值分割)

    文章目录 1 灰度直方图 1.1 直方图理解 1.2 直方图计算 1.3 直方图均衡化 1.3.1 全局均衡化 1.3.2 自适应(局部)均值化 2 图像二值化(阈值分割) 2.1 二值化理解 2.2 ...

  8. otsu阈值分割算法原理_OTSU_图像二值化分割阈值的算法

    简介: 大津法(OTSU)是一种确定图像二值化分割阈值的算法,由日本学者大津于1979年提出.从大津法的原理上来讲,该方法又称作最大类间方差法,因为按照大津法求得的阈值进行图像二值化分割后,前景与背景 ...

  9. python-opencv 图像阈值二值化

    本文讲解基于OpenCV-python的图像二值化API及浅显原理讲解 文章目录 一. 阈值 1. 简单阈值 2. 自适应阈值 二. 图像二值化 1. 全局图像二值化 2. 局部图像二值化 3. Ot ...

最新文章

  1. 用circlize包绘制circos-plot
  2. 查linux还是unix,C、C++判断操作系统是Linux、windows还是Unix
  3. 搜索2.0:利用用户点击记录改善搜索结果
  4. java抢购防止多次请求_springboot项目中接口防止恶意请求多次
  5. Windows 网络无法ping通的解决方法
  6. linux中的轮询机制select/poll/epoll特点分析
  7. HTML:frame导航框架的实现方法
  8. apache和php结合、apache的默认虚拟主机
  9. 05.LoT.UI 前后台通用框架分解系列之——漂亮的时间选择器
  10. 安装应用需要打开未知来源权限_华为盒子安装不了第三方软件?不存在的,简单几步即可搞定...
  11. Android之Activity界面劫持反劫持
  12. 《小岛经济学》读书笔记摘录
  13. 埃默里大学又一华人科学家被要求搬离实验室,当事人称“这是报复”
  14. (已解决)windows2020卸载office2013(安装程序包语言不受系统支持)
  15. 百度飞桨-基于CV的工业读表案例(修改读表范围和数值)
  16. nodepad++之jsonviewer插件
  17. 零基础怎么学习软件测试 上网课培训or面授培训?
  18. 搭建表白墙 公众号_韶大表白墙 第十季 第75期 | 篮球共青杯决赛体教1班穿黑色衣服的0号...
  19. 力扣启蒙 - 开启算法的世界
  20. uc浏览器电脑版翻译设置在哪 uc浏览器翻译网页教程

热门文章

  1. 全场景式全流程监控,博睿数据为券商IT运维难题提供了范例
  2. 昨晚改了一首小诗《剑客2》
  3. 一个人竟然撸了一个微博 App
  4. 输入URL按回车后,究竟发生了什么?
  5. 陈为浙江大学计算机学院,浙大陈为
  6. Linux系统Wpa_supplicant用法小结
  7. 当主机使用ssh免密码登录时,出现Warning:Permanently added(RSA)to the list of known hosts警告
  8. 20221224英语学习
  9. 北大曹健tensorflow
  10. docker(23):在windows 上面安装使用docker,用着也挺方便的