本博客主要记录我学习运用matlab进行一些基本的图像处理的一些笔记,如果有不当的地方,欢迎批评指正,一起学习,一起进步。

本篇是第一篇,只涉及到一些基本的操作,涉及到的知识点如下:

1、二值化

2、开操作

3、连通区域提取

4、连通区域的重心提取

5、BoundingBox提取

各操作背后的理论基础,大都可以在冈萨雷斯的数字图像处理中找到,而且matlab的帮助中会给出实现算法的论文出处。感兴趣的朋友可以深入研究。

图像处理,第一步一般是进行二值化,而二值化最常用的方法就是ostu方法。matlab可以用level=graythresh(src)直接获取二值化的阈值。之后用im2bw二值化图像。

处理图像时经常运用到一些形态学图像处理方法,而幸好matlab就为我们提供了强有力的形态学处理工具箱。本学习笔记运用到了开操作对图像进行处理,可以消除一些噪点。

获取连通区域之后,我们可能会想知道该区域的一些属性(如重心、边界框等),matlab的regionprops为我们提供了大量的属性,只要一个命令就可搞定,regionprops。

本例程的code如下:

%function:

% 获取感兴趣区域,并进行提取、标记

% 源图像位于E:\ProgramFiles\MATLAB\R2013b\toolbox\images\imdemos

% 具体路径因个人电脑而异

%date:2015-1-7

%author:chenyanan

%清空变量,读取图像,并显示其属性

clear;close all

src = imread('images/rice.png');

whos,

%显示原始图像

figure('name','myapp'),

subplot(2,2,1),imshow(src),title('src')

%用ostu方法获取二值化阈值,进行二值化并进行显示

level=graythresh(src);

bw=im2bw(src,level);

subplot(2,2,2),imshow(bw),title('bw')

%运用开操作消去噪点

se = strel('disk',2);

openbw=imopen(bw,se);

subplot(2,2,3),imshow(openbw),title('open')

%获取连通区域,并进行显示

L = bwlabel(openbw,4);

RGB = label2rgb(L);

subplot(2,2,4),imshow(RGB),title('rgb')

%获取区域的'basic'属性, 'Area', 'Centroid', and 'BoundingBox'

stats = regionprops(openbw, 'basic');

centroids = cat(1, stats.Centroid);

figure('name','regionprops'),

%绘制开操作之后的二值化图像

imshow(openbw),title('centroids')

hold on

%绘制重心

plot(centroids(:,1), centroids(:,2), 'b*'),

%绘制感兴趣区域ROI

for i=1:size(stats)

rectangle('Position',[stats(i).BoundingBox],'LineWidth',2,'LineStyle','--','EdgeColor','r'),

end

hold off

运行效果的图片如下:

matlab连通区边界_Matlab图像处理学习笔记(一):二值化、开操作、连通区域提取、重心、ROI...相关推荐

  1. opencv学习笔记之二值化

    opencv学习笔记之二值化 1.什么是二值化 二值化,从名词意义上可以看出来,是将一共物体转化成两个值.二值即:0或255.即一个白色一个黑色.即一个图片经过二值化之后会显示成白色和黑色的形式. 2 ...

  2. 图像处理学习笔记(二)

    图像处理学习笔记(二) 4 OpenCV图像处理: 4.2 形态学操作: 4.2.1 连通性: 4.2.1 腐蚀和膨胀: 4.2.2 开闭运算: 4.2.3 礼帽和黑帽: 4.2.4 形态学操作总结: ...

  3. 数字图像处理学习笔记(二):SIFT(尺度不变特征变换)算法

    数字图像处理学习笔记(二):SIFT(尺度不变特征变换)算法 一.概述: 提到特征点算法,首先就是大名鼎鼎的SIFT算法了.SIFT的全称是Scale Invariant Feature Transf ...

  4. OpenCV删除面积小的区域 实现图像二值化分割 标记连通区域

    OpenCV删除面积小的区域 实现图像二值化分割 标记连通区域    [尊重原创,转载请注明出处]http://blog.csdn.net/guyuealian/article/details/781 ...

  5. Java图像处理:灰度、二值化、浮雕、去色、反向、怀旧、放大镜等

    图像是由一个个像素点组合而成,图像处理本身实际上是遍历图像的像素点,对像素点的RGB值进行更改,以达到图像处理的目的. 接下来,我们主要介绍一下图片转化为二维像素点数组的方法以及部分图像处理如灰度.二 ...

  6. 如何用matlab分割颜色,Matlab图像处理学习笔记(二):基于颜色的图像分割

    在实际处理图像时,经常需要对图像进行分割,然后提取ROI,本学习笔记记录怎么用Matlab实现基于颜色的图像分割. 基于颜色的图像分割实现简单,算法简洁,具有很好的实时性. 实现代码的过程中,我参考了 ...

  7. 【图像处理】——图像的二值化操作及阈值化操作(固定阈值法(全局阈值法——大津法OTSU和三角法TRIANGLE)和自适应阈值法(局部阈值法——均值和高斯法))

    目录 一.二值化的概念(实际上就是一个阈值化操作) 1.概念: 2.实现方法 3.常用方法 二.阈值类型 1.常见阈值类型(主要有五种类型) (1)公式描述 (2)图表描述 2.两种特殊的阈值算法(O ...

  8. ZYNQ图像处理(4)——灰度图像转二值化图像

    1.二值化图像简介 前面已经完成了摄像头图像的采集和显示,以及RGB图像转灰度图.二值化图像在图像处理领域同样有广泛的应用,本节介绍如何用FPGA实现灰度转二值化图形.灰度实现二值化的原理很简单,只需 ...

  9. 数字图像处理100问—03二值化(Thresholding)

    提示:内容整理自:https://github.com/gzr2017/ImageProcessing100Wen CV小白从0开始学数字图像处理 03二值化(Thresholding) 把图像进行二 ...

最新文章

  1. ServerBootstrap的启动流程
  2. MAC显示隐藏文件和文件夹
  3. ztree Api官方文档
  4. matlab gui界面设计 打开文件,matlab GUI界面设计 点击按钮加载.mat数据的所有变量到工作空间中...
  5. Python3.6之py文件转exe文件
  6. 教你快速识别网络项目的骗术
  7. python词云生成与设计实现_python简单词云生成
  8. javascript-BOM-页面加载事件
  9. android 相机启动失败怎么回事,Android相机启动crash错误排查
  10. EPICS -- autosave模块使用示例
  11. 微信小程序各错误码及原因自用表
  12. 史上最小白之Transformer详解
  13. 重启电脑后MySQL数据丢失_为什么当我重启电脑时会出现数据丢失?
  14. 在广州找前端开发实习经验分享1
  15. 用DC-DC 升压降压以及产生负电压的原理及应用
  16. 微信有没有免费提现服务器,微信终于可以免费提现了,速领!
  17. Spring Boot 库存管理系统,拿来学习真香
  18. openwrt web中文语言支持,并设置默认中文
  19. Swift语言和其他计算机语言的比较
  20. 什么是程序化自动交易接口?

热门文章

  1. 学习笔记草稿版——体绘制中的光学模型
  2. viewpager fragment FragmentStatePagerAdapter数据删除后更新界面
  3. java和c的反汇编_JAVAP -C反汇编指令的学习(转载)
  4. 网络摄像头转usb接口_Arduino + USB Host Sheild 实现USB鼠标转PS/2接口
  5. 单选按钮必填会有红色选中提示吗_视频切割怎么弄?视频剪辑软件可以切割视频吗?...
  6. 计算机失误,计算机做题的易出现的失误
  7. 计算机ppt试题训练,powerpoint2010操作题 计算机POWERPOINT操作题
  8. mongodb objetcid_mongodb(1)
  9. spark 设置主类_最近Kafka这么火,聊一聊Kafka:Kafka与Spark的集成
  10. 设计师交流社区,让你的原创设计作品展示给世界