基于matlab工具箱提取图像中的多目标特征(代码如下):

代码前面部分为提取图像的边界信息,调用了后面的遍历函数Pixel_Search,函数实现方法见后~

%%ROI Testing
close all;
clear all;
clc;
I=imread('Test.png');
I=rgb2gray(I);
I=I(1:210,1:210);
[m,n]=size(I);
I_BW=I;
for Row1=1:mfor Clo1=1:nif I(Row1,Clo1)>190I_BW(Row1,Clo1)=255;elseI_BW(Row1,Clo1)=0;endend
end
imshow(I)
%figure,imhist(I)
figure,imshow(I_BW)
I_BW_morph=bwmorph(I_BW,'erod',0.8);%形态学腐蚀原理
Filter=[-1,-1,-1;-1,8,-1;-1,-1,-1];%高通滤波器,挖出二值图像的边界像素
I_Filter=imfilter(I_BW_morph,Filter);%使用滤波的方法得到的图像的边界部分是白色的,边界有变化所以经过高通滤波器后为白色
figure,imshow(I_Filter)
I_Edge=I_Filter;
I_Edge(:,2)=0;%由于采用的是滤波器的方法来实现边缘的提取,在图像的边界部分会出现颜色的变化,因此我们需要把图像边缘的部分置为0
I_Edge(:,n-1)=0;
I_Edge(2,:)=0;
I_Edge(m-1,:)=0;
figure,imshow(I_Edge)
I_Edge=uint8(I_Edge);%图像uint8化
ROI_Buffer=uint8(zeros(m,n,5));%四个模板缓存区域
C_Shape=zeros(4,1);
Label=0;for Row2=1:mfor Clo2=1:nif I_Edge(Row2,Clo2)==1Label=Label+1[ROI_Buffer(:,:,Label),C_Shape(Label,1)]=Pixel_Search(I_Edge,Row2,Clo2,m,n);%把当前的数据赋给模板figure,imshow(255*ROI_Buffer(:,:,Label));%显示所得到的对应标号为Label的图像边界,这里需要注意的问题是:由图像的色彩等级不同,因此得到的图像可能全是黑色,需要乘以255(uint8)C_Shape(Label,1)I_Edge=I_Edge-ROI_Buffer(:,:,Label);%去除原图中已经提取完成的部分endend
end

Pixel_Search函数实现如下:
%While 方法寻找边缘轮廓 采用4邻域方式
function [Pic_Process,C]=Pixel_Search(Pic,Row,Clo,m,n)While_Flag=1;C=1;%周长像素点计数Pic_Process=zeros(m,n);%模板建立Pic_Buffer=Pic;%图像缓存建立while (While_Flag==1)%while循环判断C=C+1;Pic_Process(Row,Clo)=1;%图像模板区域置位Pic_Buffer(Row,Clo)=0;%图像缓冲区域清零if Clo<=1 || Row>m || Clo>n || Row<=1%防止图像检测过程中,边缘溢出break;endif Pic_Buffer(Row,Clo-1)==1%循环判断区域结果Clo=Clo-1;While_Flag=1;else if Pic_Buffer(Row+1,Clo)==1%循环判断区域结果Row=Row+1; While_Flag=1;else if Pic_Buffer(Row,Clo+1)==1%循环判断区域结果Clo=Clo+1;While_Flag=1;else if Pic_Buffer(Row-1,Clo)==1%循环判断区域结果Row=Row-1; While_Flag=1;elseWhile_Flag=0;%各个循环条件都不满足,即像素种子点周围没有边缘像素,即可跳出while循环,结束搜索endendendendend
end

处理的图片如下:

原图:显示图像:阈值化二值分割:滤波导致的边缘问题:第一个区域提取:第二个区域提取:第三个区域提取:

后期的优化还需要进一步完成,对于复杂的图形的ROI区域分割还需要进一步处理,现已经解决了联通区域的周长问题,还需要解决的问题有面积的求解以及区域的形态学特征的求解~

注:这里有一个问题,由于边缘的提取使用了高通滤波器,边缘的路径出现大量的弯折现象,这就导致了程序计算得到的边界周长约1.8倍于实际的ROI区域的边界周长,至于解决办法,后面解决,现在先记录在案~

A1:祖冲之切割边缘按照多边形求解周长。

A2:求解相邻像素点的中间值,x=(x1+x2)/2,y=(y1+y2)/2,最后根据新的边缘求解周长。

在这里要感谢GISPALAB实验室的各位老师和学长学姐的帮助!谢谢~

转载于:https://www.cnblogs.com/uestc-mm/p/5507151.html

MATLAB·提取图像中多个目标相关推荐

  1. MATLAB#183;提取图像中多个目标

    基于matlab工具箱提取图像中的多目标特征(代码如下): 代码前面部分为提取图像的边界信息,调用了后面的遍历函数Pixel_Search,函数实现方法见后~ %%ROI Testing close ...

  2. matlab——识别图像中的圆形目标

    文章目录 说明 Figure 1 imread函数 imshow函数 Figure 2 rgb2gray函数 graythresh函数 im2bw函数 figure函数 Figure 3 bwarea ...

  3. matlab提取图像中的一部分并移动,在Matlab中从图像中提取对象

    这是一个很好的解决问题.这是一种你可以使用的方法,但我承认它绝不是完美的,也可能不那么健壮.希望它能带给你创意-- 我所做的基本上是用中值滤波器过滤图像(就像你做的那样)并使用bwareaopen删除 ...

  4. 设置matlab图像线框,matlab在图像中画长方形(框)

    function [state,result]=draw_rect(data,pointAll,windSize,showOrNot) % 函数调用:[state,result]=draw_rect( ...

  5. 【论文党福利】如何提取图像中的数据

    [论文党福利]如何提取图像中的数据 从事科研的老师和同学们在撰写论文时,经常需要将文献中的曲线与自己的结果进行对比,为获取原始数据,最靠谱的方法当然是找原作者要.如果没有要到呢?本文将成为论文党的福利 ...

  6. 遥感图像中的小样本目标检测:Few-shot Object Detection on Remote SensingImages

    论文下载:https://arxiv.org/pdf/2006.07826v2.pdf Abstract 在本文中,我们处理遥感图像上的目标检测问题.以前的方法已经发展了许多基于深度卷积的遥感图像目标 ...

  7. 图像分割实战之基于Hough变换提取图像中的直线

    图像分割的依据是基于图像中各区域具有不同的特性(比如,灰度.颜色.纹理).图像分割的目的是将图像划分成若干具有相近或相同特性的子区域,以便继续在分割成的相关区域中提取目标,并进而根据目标的特征或结构信 ...

  8. 1.2 检测和测量图像中的圆形目标

    此示例说明如何自动检测图像中的圆形目标并可视化检测到的圆. 步骤 1:加载图像 读取并显示包含各种颜色的圆形塑料片的图像.除了有大量要检测的圆之外,从圆检测的角度来看,此图像还有一些有趣的特点: 有不 ...

  9. matlab输出多个参数到表格固定列,matlab将excle的列提取出来?如何使用Matlab提取Excel中指定列的数据?...

    MATLAB 在txt文件中怎么提取数据,并将那三列数据转化为EXCLE格式? 在matlab中 file import data number of text header lines 改成6 下一 ...

最新文章

  1. MySQL存储过程详解 mysql 存储过程
  2. Unrecognized Hadoop major version number: 3.0.0-cdh6.3.2
  3. veth-pair技术在docker中的应用(docker网络通信)及tomcat Dockerfile示例
  4. poj 1469 COURSES 解题报告
  5. MySQL 锁与MVCC :数据库的锁、MVCC、当前读、快照读、锁算法、死锁
  6. HTML5-基础语法
  7. 等价关系和等价类_确定Java等价性的新时代?
  8. 互联网晚报 | 04月05日 星期二 |​ ​​​考研调剂系统明日开通;微软Edge浏览器宣布10天后退出历史舞台...
  9. 漫步数学分析六——聚点
  10. 检验多重共线性matlab_异方差太难?检验通不过?横截面分析难题的十大暴击!...
  11. github桌面版_桌面版Linux内核介绍
  12. CDH大数据平台搭建
  13. Quartz cron表达式(时间表达式)
  14. 计算机显示网络无权限访问权限,[系统知识]电脑显示无internet访问权限怎么办...
  15. UESTC 1634 去年春恨却来时,落花人独立,微雨燕双飞
  16. iOS实现APP支持SpotLight搜索
  17. 一种基于XGBOOST的企业员工稳定性(员工离职)预测方法
  18. 【Java笔记】(十):swing图形界面
  19. 戴安娜血型仪tan提取信息
  20. C#操作IIS程序池及站点的创建配置(转)

热门文章

  1. 华清远见专家解读Android开发者成长之路
  2. 全球邮箱排名,好用的中国企业邮箱品牌
  3. 【Windows】使用Nexus搭建npm私库,管理npm包,并在项目中下载
  4. 走进Airsim,教你如何做机器人与视觉的融合仿真
  5. 新玺配资:弃高就低 攻守兼备
  6. autojs开发的火云与共享API脚本源代码免费分享
  7. 宾利新飞驰 奢华难掩狂野
  8. LocalDateTime格式的时间去掉中间的T
  9. ES中更新字段和删除字段的操作
  10. 江湖实习生:初入集客邦