精华内容
下载资源
问答
  • 不规则(闭合)图形、填充不规则图形、右键填充 填充方式有:种子填充、扫描填充、系统填充 默认为种子填充
  • 关于matlab计算不规则图形面积的问题-M.rar 各位大侠,问题是这样的:给出一个三维的矩阵,第一列代表x轴,第二列代表y轴,第三列代表z轴。然后用matlab画出这个矩阵所代表的一个三维的图形,再把这个曲面投影成一...
  • Matlab不规则图形的 内切圆和外接圆 函数

    千次阅读 热门讨论 2020-08-24 20:09:34
    %% 此函数用于计算已知边界的不规则图形的最大内切圆和最小外接圆 % 输出: % zhongxin1 最大内切圆圆心 % zhongxin2 最小外接圆圆心 % smallR 最大内切圆半径 % bigR 最小外接圆半径 % 输入: % bianjie 不规则图形...

    1、全代码:

    %getZhongxin
    function [zhongxin1,zhongxin2,smallR,bigR]=getZhongxin(varargin)
    %% 此函数用于计算已知边界的不规则图形的最大内切圆和最小外接圆
    % 输出:
    %     zhongxin1 最大内切圆圆心
    %     zhongxin2 最小外接圆圆心
    %     smallR    最大内切圆半径
    %     bigR      最小外接圆半径
    % 输入:
    %     bianjie   不规则图形的边界,2 x n
    %     cuX       包裹不规则边界的矩形 x 坐标
    %     cuY       包裹不规则边界的矩形 y 坐标
    % 调用:
    %     [zhongxin1,zhongxin2,smallR,bigR]=getZhongxin(bianjie,X2,Y2);
    %     [zhongxin1,zhongxin2,smallR,bigR]=getZhongxin(bianjie);
    %-------------------------------------------------------------------
        %%%%    Authors:   Bill O'Hanlon
        %%%%    EMAIL:     ohanlon@qq.com
        %%%%    DATE:      24-08-2020
    %% 计算出 cuX,cuY,有输入则跳过
    bianjie=varargin{1};
    XArray=bianjie(1,:);
    YArray=bianjie(2,:);
    Xmax1=max(XArray);%未取整
    Xmin1=min(XArray);
    Ymax1=max(YArray);
    Ymin1=min(YArray);
    
    Xmax=(floor(Xmax1*2)+1)*0.5;
    Ymax=(floor(Ymax1*2)+1)*0.5;
    Xmin=(floor(Xmin1*2))*0.5;
    Ymin=(floor(Ymin1*2))*0.5;%这些已经取整了。
    Xmax=ceil(Xmax);
    Ymax=ceil(Ymax);
    Xmin=floor(Xmin);
    Ymin=floor(Ymin);
    if nargin==3
        cuX=varargin{2}; %注意,这里是{, (会是元胞
        cuY=varargin{3};
    elseif nargin==1
        Y=Ymin:0.0083333333:Ymax; %分辨率0.0083333333°  1°=120
        X=Xmin:0.0083333333:Xmax; %求逻辑矩阵用到
        a=size(X,2);b=size(Y,2);
        Y2=repmat(Y',1,a);
        cuX=repmat(X,b,1);
        cuY=flipud(Y2);                %这个纬度得上下翻转一下。
    else
        disp('参数不合要求!');
        return;
    end
    XArray=bianjie(1,:);
    YArray=bianjie(2,:);
    [a,b]=size(cuX);
    zhongdian=[mean(XArray);mean(YArray)];
    R=(max(bianjie(1,:))-min(bianjie(1,:))+max(bianjie(2,:))-min(bianjie(2,:)))/6;%当内切圆不对,可以改这个数
    zoom=max(a/20,b/20);%最后只保留900左右的点
    smallX=imblizoom(cuX,1/zoom);
    smallY=imblizoom(cuY,1/zoom);
    sX=smallX(:);
    sY=smallY(:);
    px=[sX';sY'];
    n=size(px,2);
    sR=zeros(n,1);bR=zeros(n,1);
    m=size(bianjie,2);
    dis=zeros(m,1);
    for i=1:n
        xy=px(:,i);
        det=bianjie-xy;
        for j=1:m
            dis(j)=norm(det(:,j));
        end
        sR(i)=min(dis);
        bR(i)=max(dis);
    end
    smallR=max(sR);%最大内切圆
    bigR=min(bR);  %最小外接圆
    zhongxin1=[sX(sR==smallR);sY(sR==smallR)];
    zhongxin2=[sX(bR==bigR);sY(bR==bigR)];
    for i=1:n
        smallR=max(sR);
        zhongxin1=[sX(sR==smallR);sY(sR==smallR)];
        if norm(zhongxin1-zhongdian)<=R
            break;
        else
            sR(sR==smallR)=0;
            continue;
        end
    end
    %% 画图
    left1=zhongxin1-smallR;  %画内切圆左下角矩形坐标
    left2=zhongxin2-bigR;    %画外接圆左下角矩形坐标
    figure;
    bigcircle=rectangle('Position',[left2',bigR*2,bigR*2],'Curvature',[1,1]);%画圆
    hold on;
    smallcircle=rectangle('Position',[left1',smallR*2,smallR*2],'Curvature',[1,1]);%画圆
    hold on;
    plot(bianjie(1,:),bianjie(2,:),zhongxin1(1),zhongxin1(2),'r*',zhongxin2(1),zhongxin2(2),'b*');
    bigcircle.FaceColor='r';smallcircle.FaceColor='w';
    hold on
    detx=Xmax-Xmin; dety=Ymax-Ymin;
    rectangle('Position',[Xmin,Ymin,detx,dety]);
    axis equal;
    axis([Xmin Xmax Ymin Ymax]);
    end
    

    依赖函数:

    https://blog.csdn.net/Gou_Hailong/article/details/108206521

    2、调用

    俩效果一样。

    [zhongxin1,zhongxin2,smallR,bigR]=getZhongxin(bianjie,X2,Y2);
    [zhongxin1,zhongxin2,smallR,bigR]=getZhongxin(bianjie);
    

    在这里插入图片描述
    注:这是北京市的shp 搞出的不规则图形。


    补于2021-3-3

    有的朋友对这个代码的原理感兴趣,有的朋友调试过程遇到了bug…bug的话我没办法解决,毕竟这个代码是根据我当时独特的需求写的,像排除bug自己跑起来的话只好自己逐步调试了。关于原理,我回顾了下,补充如下:

    算法原理:
    先将边界稀疏化(分辨率降低些,提高计算效率),再计算出来不规则边界的最小外包矩形。逐个取外包矩形中的点和边界上的每一个点计算一下距离,这些距离中最大的距离作为备选最小外接圆半径存到数组bR中,这些距离中最小的距离作为备选最大内切圆半径存到数组sR中;将外包矩形中所有的点计算完毕之后,取bR数组中最小的值作为最小外接圆半径,取sR数组中最大的值作为最大内切圆半径。

    注:由于时间较久,不知描述是否符合之前的本意,如有错误欢迎批评指正!

    展开全文
  • 在2019数学建模A题时遇到需要根据三维坐标出三维曲面图,但由于随机不规则,不能形成坐标矩阵,故直接带入只能生成三维散点图,如,有数据: u=[5 5 5; 7 2 1; 4 7 2; 6 1 6; 2 6 7; 3 3 4; 1 4 3]; x=u(:,1) ...

    参考MATLAB文档 https://ww2.mathworks.cn/help/matlab/ref/griddata.html

    在2019数学建模A题时遇到需要根据三维坐标画出三维曲面图,但由于随机不规则,不能形成坐标矩阵,故直接带入只能生成三维散点图,如,有数据:

    u=[5 5 5;
    7 2 1;
    4 7 2;
    6 1 6;
    2 6 7;
    3 3 4;
    1 4 3];
    x=u(:,1)
    y=u(:,2)
    z=u(:,3)

    可用代码得到:

    plot3(x,y,z,'o')

    如使用三维曲面图:

    >> [xq, yq] = meshgrid(0:8,0:7);
    >> zq = griddata(x, y, z, xq, yq);
    >> mesh(xq, yq, zq)

    meshgrid 括号里跟两个列表,表明将要取的矩阵点的范围

    griddata 为拟合,拟合后的矩阵为xq yq zq

    mesh() 为生成网格

    当然,也可以生成别的图像,如(以下为了美观,采用另一套坐标点)

    surf(xq, yq, vq)

    surf(xq, yq, vq)
    axis square
    shading interp

    surfl(xq, yq, vq)
    shading interp;
    colormap(gray);

    展开全文
  • 基于matlab不规则面积图像测量.doc 基于 MATLAB不规则面积图像测量* 不规则图像/图像处理/面积计算 1 引言在当今这个生活节奏迅速的时代,测量工作已经难以通过事事亲力亲为得到保证,特别是在复杂的环境条件下...

    41528d3028836879cd698677c3999917.gif基于matlab的不规则面积图像测量.doc

    基于 MATLAB 的不规则面积图像测量* 不规则图像/图像处理/面积计算 1 引言在当今这个生活节奏迅速的时代,测量工作已经难以通过事事亲力亲为得到保证,特别是在复杂的环境条件下(如强 电磁、强辐射、强腐蚀的环境),因此我们需要通过其他方式手段来达到我们的测量目的。近代科学和工业化的发展,也要 求测试技术突破经典的测量方法和技术,寻求新的测试原理与手段。图像测量作为近年来在测量领域新兴的一种高性能 测量技术,其在机器视觉、图像匹配、图像检测和模式识别中都有重要应用。数字图像面积测量作为数字图像测量的一 个重要分支,在日常生活中的应用更是不胜枚举。 2 不规则图像面积测量原理 2.1 图像获取利用对特殊类型能源敏感的传感器材料,把输入能源转变成输出电压波形,再将其数字化,从而便得到数字图像信息 [1] 。 例如可以利用数字化设备拍摄数字图像(如数码相机),利用数字转换设备采集数字图像等。 2.2 图像预处理-图像复原(image restoration) 成像系统受各种因素的影响,导致了图像质量的降低,造成图像退化。传感器噪声、摄像机聚焦不佳、物体与摄像机之间 的相对移动、随机大气湍流、光学系统的像差、成像光源和射线的散射等都是其影响因素。典型的图像复原是根据图 像退化的先验知识建立一个退化模型,如空间域图像退化模型,该系统模型的特点是线性、移不变的;频域退化模型; 能量 域的退化模型等。模型选择好后再以这个模型为基础,采用各种逆退化处理方法进行恢复,使图像质量得到改善 [2][3] 。本 文中采集的图像主要存在运动而引起的图像模糊,其频域对应的退化模型为 (1) 2.3 目标图像提取 在对图像的研究和应用中,人们往往只对图像中的某些部分感兴趣,这些部分即为目标图像,它是图像中特定的、具有独特 性质的区域。为了辨识和分析目标,需要将它们从背景中分离、提取出来,在此基础上才有可能对目标信息做进一步的利 用。图像提取分割正是将这样的特征区域提取出来的技术。这些特征可以是灰度、颜色和纹理等,目标可以是单个区域, 也可以是多个区域。本文借助于 MATlLAB 软件自身所带的 roipoly 函数通过手动选取的方式,在原始图像中选取感兴趣 的区域从而获取目标区域进行分析与研究。 2.4 图像处理 2.4.1 目标区域图像增强图像增强的目的是为了提高目标区域图像的质量,如提高图像的清晰度等。图像增强不考虑图像是如何退化,而是试 图采用各种技术来增强图像的视觉效果。因此,图像增强可以不顾增强后的图像是否失真,而是突出目标区域中所感兴趣的部分,如:强化图像高频分量,可使图像中物体轮廓清晰,细节明显; 强化低频分量可减少图像中噪声影响。本文采用的图 像增强方法为:因为灰度直方图(histogram)是多种空间域处理技术的基础并且直方图操作能够有效用于图像增强,提供有 用的图像统计资料,其在软件中也易于计算,所以本文采用统计原图的灰度直方图,并利用直方图均衡方法进行图象增强, 分别利用 imread 函数统计原图的灰度直方图和利用 histeq 函数进行直方图均衡化处理。 2.4.2 图像去噪及边缘检测准确的边缘提取对后续的面积计算非常重要。由于受诸多条件的影响,会存在不同程度的干扰噪声导致不能提取出 理想的边缘,直接影响到计算的精确度,所以在边缘检测前先对图像进行噪声滤波予以改善。① 中值滤波法是一种非线性平滑技术,它将每一个像素点的灰度值设置为该点某领域窗口内的所有像素点灰度值的 中值可以有效的消除椒盐噪声,同时也可以保护边缘信息。在 MATLAB 中 medfilt2 函数来进行中值滤波处理。 ② 对于滤波后的图像会有许多不属于所需测量的干扰区域,因此我们对图像进行形态学处理,选取不影响测量面积 的结构元素对图像进行膨胀处理达到修复完善边界的作用,在通过腐蚀操作去除无需测量的小块干扰区域,从而达到完整 去噪的目的。MATLAB 可以通过 strel 函数来产生所需要的结构元素,imdilate 和 imerode 来完成膨胀和腐蚀操作。③ 对去噪后的图像利用 edge 函数采用高斯函数的拉普拉斯探测算子通过双边缘间的零交叉点位置确定真实的边缘 位置。拉普拉斯算子模板如下: (2)④ 在边缘点拟合完成后用 1 对拟合曲线包围的区域进行填充,填充后即为目标区域 [4] 。 2.5 目标区域图像面积计算经过图像处理后的目标区域块其边缘特性较处理前有很大的改善,进而可以进行面积的计算。我们知道,对于同一类 型的目标,总面积的计算可以通过先求出总的像素个数,然后乘以单个像素的面积即可得 [5] 。即由上可得,不规则面积的图像测量方法的测量流程如下图 1 所示: 图一 不规则面积的图像测量方法的测量流程由此可见,单个像素的面积和总像素个数的计算对测量的结果有很大的影响。在求取目标区域总像素个数的时候常 采用定标法,即在所测目标区域放置一个标准物件。这样做的目的不仅利于测量同时也可以减小测量误差。其中单个像 素的面积通过下述方法得到,由该标准物件求取出该标准物件的像素个数,求取该标准物件面积并用此面积除以该标准物 件的总像素个数即可求出单个像素面积:单个像素面积=标准物件面积/标准物件总像素个数本文所采用标准物件为一圆硬币,直径大小为 25mm。高度 2mm 。3 实例分析在某次补片焊接中,经提取后的需补片区域图像处理前(左图)和处理后的目标区域块图像(右图)如下图 2 所示: 由此可以看出,在处理后的效果较之处理前大为改善。用图像法测出的图像面积与此补片的实际面积(1471.43mm2) 比较结果如表 1 所示,其中常规法采用微分元法求取[6]:由测量数据可以得出,通过这种方法测得的图像面积的相对误差在 1%以下,较常规方法求得的误差更小。 4 结束语由以上的分析和数据可以得出结论:选取后的图像,在经过图像复原、图像增强、边缘点连接拟合与检测处理后,图 像质量得到很大改善,目标区域较处理前特征更为明显、清晰。运用所述的面积测量方法进行图像的面积测量,相对误差 落在很小的范围之内,能够很好的测量出目标区域的图像面积,说明此方法是有效的,在实际测量中也是可行的。加之图像 法具有的非接触及适时性好等特性,其应用也必将越来与广泛。赵松柏 谌海云 贾 鹏 卢阿娟 邹宁波 陈普春 郑琦怡

    展开全文
  • 因为实际上对图像进行二维傅立叶变换得到频谱图,就是图像梯度的分布图,当然频谱图上的各点与图像上各点并存在一一对应的关系,即使在移频的情况下也是没有。傅立叶频谱图上我们看到的明暗不一的亮点,实际上...

    五、图像傅立叶变换的物理意义图像的频率是表征图像中灰度变化剧烈程度的指标,是灰度在平面空间上的梯度。如:大面积的沙漠在图像中是一片灰度变化缓慢的区域,对应的频率值很低;而对于地表属性变换剧烈的边缘区域在图像中是一片灰度变化剧烈的区域,对应的频率值较高。傅立叶变换在实际中有非常明显的物理意义,设f是一个能量有限的模拟信号,则其傅立叶变换就表示f的谱。从纯粹的数学意义上看,傅立叶变换是将一个函数转换为一系列周期函数来处理的。从物理效果看,傅立叶变换是将图像从空间域转换到频率域,其逆变换是将图像从频率域转换到空间域。换句话说,傅立叶变换的物理意义是将图像的灰度分布函数变换为图像的频率分布函数,傅立叶逆变换是将图像的频率分布函数变换为灰度分布函数。

    傅立叶变换以前,图像(未压缩的位图)是由对在连续空间(现实空间)上的采样得到一系列点的**,我们习惯用一个二维矩阵表示空间上各点,则图像可由z=f(x,y)来表示。由于空间是三维的,图像是二维的,因此空间中物体在另一个维度上的关系就由梯度来表示,这样我们可以通过观察图像得知物体在三维空间中的对应关系。为什么要提梯度?因为实际上对图像进行二维傅立叶变换得到频谱图,就是图像梯度的分布图,当然频谱图上的各点与图像上各点并不存在一一对应的关系,即使在不移频的情况下也是没有。傅立叶频谱图上我们看到的明暗不一的亮点,实际上图像上某一点与邻域点差异的强弱,即梯度的大小,也即该点的频率的大小(可以这么理解,图像中的低频部分指低梯度的点,高频部分相反)。一般来讲,梯度大则该点的亮度强,否则该点亮度弱。这样通过观察傅立叶变换后的频谱图,也叫功率图,我们首先就可以看出,图像的能量分布,如果频谱图中暗的点数更多,那么实际图像是比较柔和的(因为各点与邻域差异都不大,梯度相对较小),反之,如果频谱图中亮的点数多,那么实际图像一定是尖锐的,边界分明且边界两边像素差异较大的。对频谱移频到原点以后,可以看出图像的频率分布是以原点为圆心,对称分布的。将频谱移频到圆心除了可以清晰地看出图像频率分布以外,还有一个好处,它可以分离出有周期性规律的干扰信号,比如正弦干扰,一副带有正弦干扰,移频到原点的频谱图上可以看出除了中心以外还存在以某一点为中心,对称分布的亮点**,这个**就是干扰噪音产生的,这时可以很直观的通过在该位置放置带阻滤波器消除干扰。

    展开全文
  • Matlab的Figure工具栏中没有提供曲线平移的工具,平移曲线只能先对原始数据进行运算,然后重新绘图,便于可视化操作。笔者尝试开发了用于Matlab图形(Figure)中进行曲线平移的代码,能够与Matlab的自带Figure无缝...
  • 小爷一米二关于安卓图形解锁有关的思考1.路径规则:2.命名规则3....出的路径能重复经过同一点,能经过未访问的点。 2.命名规则 {1,3,7,9}四个顶点是a类;{2,4,6,8}四个边点是b类;{5}中心点是c
  • 我正在尝试为一些行为心理学研究提出一个评分系统.我要求人们在图形输入板上一封信然后追踪它....从概念上讲,它就像两条线之间的区域,只有线条高度不规则,所以积分(据我所知)不会起作用.我在MA...
  • 7.2 二维图形MATLAB提供了众多的二维图形绘图函数,这些函数的分类[R.D.1]如图7-3所示。可以看出,MATLAB基本的二维图形包括线型(line)、条型(bar)、区域型(area)、方向矢量型(direction)、辐射型(radial)、散点型...
  • matlab图形着色

    万次阅读 2016-09-04 10:35:06
    1.matlab中的颜色查找表函数:(1)autumn:从红色向橘黄色、黄色平稳过渡;(2)bone:为含有较高的蓝色组分的gray颜色查找表;(3)colorcube:包含RGB颜色空间中尽可能多的规则间隔的颜色,它试图提供更多的灰色、...
  • MATLAB图形图像处理

    热门讨论 2011-01-03 12:20:11
    第二章 MATLAB 图形绘制基础 2.1 二维绘图 2.1.1 基本绘图函数 2.1.2 图形窗口的修饰 2.2 三维绘图 2.2.1 plot3 函数 2.2.2 三维网格图和曲面图 第三章 MATLAB 图形对象 3.1 图形对象 3.1.1 Root 对象 ...
  • 利用matlab绘制简单IFS图形(Sierpinski谢尔宾斯基三角形和BarnsleyFern巴恩斯利蕨) 一、SierpinskiTriangle谢尔宾斯基三角形 谢尔宾斯基三角形(英语:Sierpinski triangle)是一种分形,由波兰数学家谢尔宾斯基...
  • 没思路,参考了一下这个答案 https://ww2.mathworks.cn/matlabcentral/answers/43506-polygon-width-and-centerline 并结合了这个https://blog.csdn.net/yangyangyang20092010/article/details/51541940   ...
  • 旋转当然是可能的,因为矩阵基于的“网格”是规则的.但我记得你最初的想法是什么,所以以下内容将对你有所帮助:%example dataA = magic(5);A =17 24 1 8 1523 5 7 14 164 6 13 20 2210 12 19 21 311 18 25...
  • 这是用mpi与openmp并行计算实现蒙特卡洛算法求不规则图形面积,其中还需用opencv进行图像处理,拍照生成.jpg文件,注意图片尺寸。
  • MATLAB辛普森法则梯形规则和辛普森规则是牛顿-科特规则的特例,它们使用更高阶的函数进行数值积分。让抛物线代表图形的曲线。Y =αX2 +βX+γ………… ..equation 1在此方法下,间隔-h≤x≤h的面积为曲线穿过三个点...
  • matlab实现方法 这里介绍两个实现着色的函数,patch, fill。这两个函数具体使用方法查看帮助。 我使用的是patch。官方帮助文档上有一个示例如下 x = [2 5; 2 5; 8 8]; y = [4 0; 8 2; 4 0]; c = [0; 1]; figure ...
  • matlab画包络图

    2021-05-26 13:01:48
    k = convhull(___,‘Simplify’,tf) 指定是否删除影响凸包面积或体积的顶点。默认情况下,tf 为 false。 [k,av] = convhull(___) 也计算凸包的面积或体积。 eg1: P = [0 0; 1 1; 1.5 0.5; 1.5 -0
  • 不规则图形面积的计算

    千次阅读 2020-07-05 16:37:51
    用python测量实际的物体大小————拟合椭圆计算面积 python计算不规则图形面积算法
  • Matlab中的图形

    千次阅读 2011-04-06 15:44:00
     第四节 Matlab中的图形§4.1 二维作图  §4.1.1 基本形式  §4.1.2 多重线  §4.1.3 线型和颜色的控制  §4.1.4对数图、极坐标图及条形图  §4.1.5 子图  §...
  • 如以下图片![图片说明](https://img-ask.csdn.net/upload/201709/08/1504861215_131805.png)我要从中随意截取一块,效果如下![图片说明](https://img-ask.csdn.net/upload/201709/08/1504861230_722299.png)请问怎么...
  • MATLAB三维图形绘制、渲染和交互

    千次阅读 2019-11-21 09:39:22
    介绍MATLAB三维图形的建模、着色、光照、材质、透明性和交互操作全部内容。 【课程收益】 MATLAB三维绘图 MATLAB三维图形渲染和交互操作 视频教程入口 第一章:课程简介 1. 课程简介 4:07 第二章:三维...
  • 0]) %纵轴和横轴 %这句有用吗,figure就有x轴y轴了吗 m=-l:l; %轨道磁量子数向量(纵坐标) x=sqrt(L^2-m.^2); %轨道角动量矢量的横坐标 x0=zeros(size(x)); %各条直线的原点横坐标 quiver(x0,x0,x,m,0,'LineWidth...
  • MATLAB 图形着色

    2018-07-19 15:26:00
    1.matlab中的颜色查找表函数: (1)autumn:从红色向橘黄色、黄色平稳过渡; (2)bone:为含有较高的蓝色组分的gray颜色查找表; (3)colorcube:包含RGB颜色空间中尽可能多的规则间隔的颜色,它试图提供更多的...
  • matlab提取图形形心

    2021-03-02 08:29:08
    img = imread('coin.png'); ibw = im2bw(img,0.4); ibw = imfill(ibw,'holes'); ilabel = bwlabel(ibw); Area_I = regionprops(ilabel,'centroid'); ...plot(Area_I(x).Centroid(1),Area_I(x).Centroid(2),'b*');...
  • 第二章 MATLAB 图形绘制基础 2.1 二维绘图 2.1.1 基本绘图函数 2.1.2 图形窗口的修饰 2.2 三维绘图 2.2.1 plot3 函数 2.2.2 三维网格图和曲面图 第三章 MATLAB 图形对象 3.1 图形对象 3.1.1 Root 对象 ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 5,078
精华内容 2,031
关键字:

matlab画不规则图形

matlab 订阅