图像处理学习——基于霍夫变换(Matlab代码实现)

news/2024/7/21 7:05:55 标签: matlab, 图像处理, 计算机视觉

    目录

💥1 概述

📚2 运行结果

🎉3 参考文献

👨‍💻4 Matlab代码

💥1 概述

霍夫变换是一种在图像中寻找直线、圆形以及其他简单形状的方法。

霍夫变换采用类似于投票的方式来获取当前图像内的形状集合,该变换由Paul Hough(霍夫)于1962年首次提出。

最初的霍夫变换只能用于检测直线,经过发展后,霍夫变换不仅能够识别直线,还能识别其他简单的图形结构,常见的有圆、椭圆等。实际上,只要是能够用一个参数方程表示的对象,都适合用霍夫变换来检测。

代码分为以下部分​:

  1. 编写一个MATLAB程序,使用直接逆滤波来恢复退化的图像。
  2. 编写一个MATLAB函数,用于使用(a)恒定比率和(b)自相关函数实现线性图像恢复的维纳滤波。
  3. 编写一个MATLAB函数,将RGB颜色空间转换为HSI。显示色调图像、饱和度图像和强度图像。
  4. 编写MATLAB函数,对彩色图像的强度分量进行直方图均衡,得到新的HSI图像。将新的HSI图像转换回RGB。
  5. 使用霍夫变换检测二进制图像中的线段。
  6. 考虑一个由不重叠的小斑点组成的图像。基于阈值分割斑点。
  7. 考虑一个由不重叠的小斑点组成的图像。根据区域增长对斑点进行细分。
  8. 实现分割和合并过程,以分割具有四叉树区域的最小尺寸的不同值的图像。
  9. 考虑一个由小斑点组成的二进制图像。使用(a)距离变换和(b)分水岭变换对斑点进行分段。

📚2 运行结果

主函数部分代码:

function splitAndMerge()
    orgImg=imread('figXray.tif');
    md=input('Enter the minimum dimension of block: ');
    segImg=splitmerge(orgImg,md,@predicate);
    subplot(121);imshow(orgImg);title('Original Image');
    subplot(122);imshow(segImg);title('Segmented Image');
end
​
function g = splitmerge(f,mindim,fun)
    q=2^nextpow2(max(size(f)));
    [row,col]=size(f);
    f=padarray(f,[q-row,q-col],'post');
    z=qtdecomp(f,@split_test,mindim,fun);
    Lmax=full(max(z(:)));
    g=zeros(size(f));
    marker=zeros(size(f));
    for k=1:Lmax
        [vals,r,c]=qtgetblk(f,z,k);
        if ~isempty(vals)
            for i=1:length(r)
                xlow=r(i);
                ylow=c(i);
                xhigh=xlow+k-1;
                yhigh=ylow+k-1;
                region = f(xlow:xhigh,ylow:yhigh);
                flag=fun(region);
                if flag
                    g(xlow:xhigh,ylow:yhigh)=1;
                    marker(xlow,ylow)=1;
                end
            end
        end
    end
    g=bwlabel(imreconstruct(marker,g));
    g=g(1:row,1:col);
end
​
function flag=predicate(region)
    sd=std2(region);
    m=mean2(region);
    flag=(sd>10) & (m>0) & (m<125);
end
​
function v=split_test(b,mindim,fun)
    k=size(b,3);
    v(1:k)=false;
    for i=1:k
        quadregion=b(:,:,i);
        if size(quadregion,1)<=mindim
                v(i)=false;
        continue
        end
            flag=fun(quadregion);
        if flag
                v(i)=true;
        end
    end
end
​

🎉3 参考文献

[1]代勤,王延杰,韩广良.基于改进Hough变换和透视变换的透视图像矫正[J].液晶与显示,2012,27(04):552-556.

部分理论引用网络文献,若有侵权联系博主删除。


http://www.niftyadmin.cn/n/235321.html

相关文章

亮剑「驾舱」产品矩阵,百度要做智能化「卷王」

2023年&#xff0c;汽车智能化开启新一轮加速度。 伴随着汽车行业变革从“电动化”的上半场进入“智能化”的下半场&#xff0c;中国正成为智能驾驶技术领域的引领者和汽车智能化的核心战场。 据高工智能汽车研究院发布的《2023-2025年中国智能汽车产业链市场数据预测报告》预…

代码随想录|day49|动态规划part10● 121. 买卖股票的最佳时机 ● 122.买卖股票的最佳时机II

它来了它来了&#xff01;我们最爱的股票问题它来了&#xff01;&#xff01; 121. 买卖股票的最佳时机 链接&#xff1a;代码随想录 视频链接&#xff1a;动态规划之 LeetCode&#xff1a;121.买卖股票的最佳时机1_哔哩哔哩_bilibili 好难懂&#xff0c;尤其是理解状态的变化以…

【springcloud】服务熔断——Hystrix

官方资料&#xff1a;Home Netflix/Hystrix Wiki GitHub 服务雪崩 多个微服务之间调用的时候&#xff0c;假设微服务A调用微服务B和微服务C&#xff0c;微服务B和微服务C又调用其他的微服务&#xff0c;这就是所谓的“扇出”&#xff0c;如果扇出的链路上某个微服务的调用响…

Mac重启清理缓存会怎么样 mac清理缓存怎么清理

众所周知&#xff0c;Mac电脑有着流畅的操作系统&#xff0c;因此&#xff0c;很多用户都会选择使用Mac电脑办公。随着日常使用&#xff0c;系统缓存数据越来越大&#xff0c;某些Mac电脑&#xff08;尤其是小内存版本的Mac电脑&#xff09;可能会出现“系统”占存储空间比例较…

歌尔股份:穿越成长周期,布局二次飞跃

随着智能时代到来&#xff0c;消费电子市场正处于新一轮产业结构性升级的关键时期&#xff0c;电声企业如何前瞻性布局&#xff0c;给自己装上“智慧引擎”&#xff1f; 4月17日&#xff0c;歌尔股份发布了2022年财报及2023年第一季度财报。根据财报&#xff0c;歌尔2022年实现…

电影《绿皮书》鉴赏

**《绿皮书》**由彼得法雷尔执导&#xff0c;维戈莫滕森和马萨拉阿里主演&#xff0c;改编自关于保镖托尼的真实故事。20世纪60年代&#xff0c;美国的种族关系紧张&#xff0c;黑人音乐家很少有机会演出。作为当时为数不多的黑人钢琴家之一&#xff0c;唐参加了许多音乐会巡演…

APP程序远程更新GITHUB RELEASE

要自己架设一个服务器来提供app更新&#xff0c;别说是配置服务器了&#xff0c;光是买个主机都很棘手。但是github提供了release功能&#xff0c;并有相关api支持。下面介绍如何使用github的release功能。 这里以DTU802 基于.net开发的iotgateway程序为例&#xff0c;硬件&am…

Python opencv 实现图像平移及旋转

Python opencv 实现图像平移及旋转 仿射变换是一种仅在二维平面中发生的几何变形&#xff0c;变换之后的图像仍然可以保持直线的 “平直性” 和 “平行性”&#xff0c;也就是说原来的直线变换之后还是直线&#xff0c;平行线变换之后还是平行线。图像平移和图像旋转是常见的放…