利用edge()函数提取图像轮廓,绘制出对象的边界和提取边界坐标信息,matlab实现代码如下:

close all;clear all;clc;
% 提取图像轮廓,提取图像边缘
I = imread('yifu.jpg');
c = im2bw(I,graythresh(I));
figure;
subplot(131);imshow(I);
c = flipud(c); %实现矩阵c上下翻转
b = edge(c,'canny');
[u,v] = find(b); %返回边界矩阵b中非零元素的位置
xp = v; %行值v赋给xp
yp = u; %列值u赋给yp
x0 = mean([min(xp),max(xp)]); %x0为行值的均值
y0 = mean([min(yp),max(yp)]); %y0为列值得均值
xp1 = xp-x0;
yp1 = yp-y0;
[cita,r] = cart2pol(xp1,yp1);
q = sortrows([cita,r]); %从r列开始比较数值并按升序排序
cita = q(:,1); %赋角度值
r = q(:,2); %赋半径模值
subplot(132);polar(cita,r); %画极坐标下的轮廓图
[x,y] = pol2cart(cita,r);
x = x+x0;
y = y+y0;
subplot(133);plot(x,y);axis equal;

程序运行结果:

 

matlab 提取图像轮廓(图像边缘提取)的更多相关文章

  1. 利用matlab自带函数快速提取二值图像的图像边缘 bwperim函数

      clear all;close all;clc; I = imread('rice.png'); I = im2bw(I); J = bwperim(I); % 提取二值图像图像边缘 figure ...

  2. MATLAB·提取图像中多个目标

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

  3. Python图像处理丨认识图像锐化和边缘提取的4个算子

    摘要:图像锐化和边缘提取技术可以消除图像中的噪声,提取图像信息中用来表征图像的一些变量,为图像识别提供基础. 本文分享自华为云社区<[Python图像处理] 十七.图像锐化与边缘检测之Rober ...

  4. opencv 图像轮廓

    图片解析: 原图: code: #include <opencv\cv.h> #include <opencv\highgui.h> #include <opencv\c ...

  5. OpenCV3入门(十)图像轮廓

    1.图像轮廓 1.1图像轮廓与API函数 轮廓是一系列相连的点组成的曲线,代表了物体的基本外形,相对于边缘,轮廓是连续的,边缘并不全部连续.一般地,获取图像轮廓要经过下面几个步骤: 1)     读取 ...

  6. opencv 6 图像轮廓与图像分割修复 3 图像的矩,分水岭,图像修补

    图像的矩 矩的计算:moments()函数 计算轮廓面积:contourArea()函数 #include "opencv2/highgui/highgui.hpp" #inclu ...

  7. OpenCV笔记(3)(Canny边缘检测、高斯金字塔、拉普拉斯金字塔、图像轮廓、模板匹配)

    一.Canny边缘检测 Canny边缘检测是一系列方法综合的结果.其中主要包含以下步骤: 1.使用高斯滤波器,平滑图像,滤除噪声. 2.计算图像中每个像素点的梯度强度和方向. 3.应用非极大值抑制(N ...

  8. matlab之原始处理图像几何变换

    (一)图像几何变换理论知识 (1)图像的平移与比例 图像的平移很简单,平移前后的坐标分别为(x,y)和(x',y'),则满足的关系式为 x'= x +Tx: y'= y +Ty: 其中Tx与Ty分别为 ...

  9. OpenCV计算机视觉学习(8)——图像轮廓处理(轮廓绘制,轮廓检索,轮廓填充,轮廓近似)

    如果需要处理的原图及代码,请移步小编的GitHub地址 传送门:请点击我 如果点击有误:https://github.com/LeBron-Jian/ComputerVisionPractice 1, ...

随机推荐

  1. 002_linuxC++_.h和.c文件

    (一)程序修改001_linuxC++之_类的引入 (二)修改成为.h和.c文件 #include <stdio.h> #include "person.h" int ...

  2. [Number]js中数字存储(0.1 + 0.2 !== 0.3)

    和其他编程语言(如 C 和 Java)不同,JavaScript 不区分整数值和浮点数值, 所有数字在 JavaScript 中均用浮点数值表示,遵循IEEE754标准,在进行数字运算的时候要特别注意 ...

  3. jquery的tap会执行2次的替换办法

    用touchend替换 $(".videoCall").on("touchend",function(){ })$(".videoCall" ...

  4. pwrite,pread

    pwrite,pread,在多线程中读写文件使用,将lseek 和read 或write 合为一个原子操作(在执行的时候不会失去CPU). ssize_t pwrite(intfd, const vo ...

  5. AI 期刊会议

    本文目的为寻找以下方向最新的发展方向和资料,比如期刊会议. AI包括以下方向:计算机视觉(CV).语言(NLP)和语音 A:计算机视觉(CV) B:语言(NLP) 1. 会议 ACL.EMNLP.NA ...

  6. Zabbix+Grafana 展示示例1

    Zabbix+Grafana 展示示例 Grafana是一个跨平台的开源度量分析和可是化的工具,可以通过该将采集的数据查询然后可视化的展示,并及时通知. 1. Grafana 特性 1. 展示方式:快 ...

  7. maven-jetty插件配置时,webdefault.xml的取得和修改

    取得 没必要去下载一个jetty客户端去找webdefault.xml了. 可以去maven的本地仓库找到 \org\eclipse\jetty\jetty-webapp\版本号\ 里面的jar文件, ...

  8. Selenium调用使用360浏览器,QQ浏览器,遨游浏览器,猎豹浏览器,Chromium

    国产的360安全浏览器,360急速浏览器,QQ浏览器,遨游浏览器甚至新版还未上市的Edge浏览器都是基于Chrome浏览器的开源版本Chronium开发来的.所以360浏览器可以理解为一个定制的Chr ...

  9. ZR#955 折纸

    ZR#955 折纸 解法: 可以发现折纸之后被折到上面的部分实际上是没有用的,因为他和下面对应位置一定是一样的,而影响答案的只有每个位置的颜色和最底层的坐标范围.因此,我们只需要考虑最底层即可,即我们 ...

  10. Kinect v1 (Microsoft Kinect for Windows v1 )彩色和深度图像对的采集步骤

    Kinect v1 (Microsoft Kinect for Windows v1 )彩色和深度图像对的采集步骤 一.在ubuntu下尝试 1. 在虚拟机VWware Workstation 12. ...