SengRea 2021-09-09 14:35 采纳率: 0%
浏览 63
已结题

Matlab 如何将二进制(binary image)图像中的“线(1)”进行连接

在研究过程中得到了一个二进制图像,如下:

img

白色栅格为1,也就是题目描述的线,黑色栅格为0。
现在想将这个“线”完全连接起来,形成一个闭合空间(目的是为了下一步对内部进行填充,如果又可以直接进行填充的办法也可以)。
上图只是整体的一部分,请问有没有什么方法可以自动将未闭合的边界线进行插值或其他操作,使值为1的边界形成一个闭合的空间?
当然,python如果能够实现的话,也请留言。

  • 写回答

3条回答 默认 最新

  • 技术专家团-Joel 2021-09-09 15:52
    关注

    你好,同学,根据你的二值图像,可以通过使用matlab的boundary函数,适当调整收缩因子达到连接的目的:

    bwPic = im2bw(imread('exam.png'));%这个图片是从你的图片上截下来的,你如果是二值图片,这个步骤省略
    figure(1);clf
    imshow(bwPic)
    [j,i] = find(bwPic);
    %end
    k = boundary(i,j,0.98);%我这里收缩因子调整为0.98,效果不错
    figure(2);clf
    x= i(k);
    y = j(k);
    plot(x,y);
    set(gca,'Ydir','reverse')
    axis equal
    

    示例图片

    img

    获得结果

    img

    最后的x和y就是你需要的封闭曲线坐标【图片坐标】

    评论

报告相同问题?

问题事件

  • 系统已结题 9月17日
  • 创建了问题 9月9日

悬赏问题

  • ¥15 三分类机器学习模型可视化分析
  • ¥15 本地测试网站127.0.0.1 已拒绝连接,如何解决?(标签-ubuntu)
  • ¥50 Qt在release捕获异常并跟踪堆栈(有Demo,跑一下环境再回答)
  • ¥30 python,LLM 文本提炼
  • ¥15 关于将inet引入的相关问题
  • ¥15 关于一个倒计时的操作和显示设计
  • ¥15 提问STK的问题,哪位航天领域的同学会啊
  • ¥15 苹果系统的mac m1芯片的笔记本使用ce修改器使用不了
  • ¥15 单相逆变的电压电流双闭环中进行低通滤波PID算法改进
  • ¥15 关于#java#的问题,请各位专家解答!