图像处理之Hadamard变换和Hough变换
一、Hadamard变换
1、基本原理
Hadamard变换相当于在原来的图像矩阵左右分别乘以一一个矩阵,这两个矩阵都是正交矩阵,称为Hadamard变换矩阵。Hadamard变换矩阵中所有的元素都是+1或-1。在MATLAB软件中,可以通过函数hadamard()产生Hadamard变换矩阵。该函数的详细调用情况如下:
2、matlab实现
close all;
clear all;
clc;
% 通过函数hadamard()产生Hadamard变换矩阵
% 调用格式为H=hadamard(n)该函数产生阶数为n的Hadamard变换矩阵H
% 注意变换矩阵H满足H'*H=n*I,其中I为n阶单位矩阵
a=hadamard(2);
b=hadamard(4);
% 验证性质H'*H=n*I
c=a'*a;
d=b'*b;
disp(a);
disp(b);
disp(c);
disp(d);% 对图像进行Hadamard变换
I=imread('cameraman.tif');
I=im2double(I);
h1=size(I,1);% 图像的行
h2=size(I,2);% 图像的列
H1=hadamard(h1);
H2=hadamard(h2);
J=(H1*I*H2)/sqrt(h1*h2);% Hadamard变换公式
subplot(121),imshow(I);
title('原始图像');
subplot(122),imshow(J);
title('Hadamard变换的结果');
命令行窗口:
1 11 -11 1 1 11 -1 1 -11 1 -1 -11 -1 -1 12 00 24 0 0 00 4 0 00 0 4 00 0 0 4
实现效果:
二、Hough变换
1、基本原理
Hough变换是图像处理中从图像中识别几何形状的基本方法之一。由Paul Hough于1962年提出,最初只用于二值图像直线检测,后来扩展到任意形状的检测。Hough变换的基本原理在于利用点与线的对偶性,将原始图像空间给定的曲线通过曲线表达式变为参数空间的一个点。这样就把原始图像中给定曲线的检测问题转化为寻找参数空间中的峰值问题。
Hough变换根据如下公式:
把x-y平面的图像转换为θ- p参数平面上的图像矩阵。在MATLAB中,Hough 变换的函数包括函数hough()函数houghpeaks()和函数houghlines()。函数hough()用来进行Hough变换,该函数的详细调用格式如下:
2、matlab实现
% 对图像进行Hough变换
close all;
clear all;
clc;
I=imread('circuit.tif');
I=im2double(I);
BW=edge(I,'canny');
% hough函数用于Hough变换,调用格式为[H,theta,rho]=hough(BW,ParameterName,ParameterValue)
% theta为变换角度,rho为变换半径,一般ParameterName有两个选择:'RhoResolution'为0到图像像素个数之间的标量,'ThetaResolution'为[0,90]之间的实值标量
[H,Theta,Rho]=hough(BW,'RhoResolution',0.5,'ThetaResolution',0.5);subplot(121),imshow(BW);
title('原始图像的边缘信息');
subplot(122),imshow(imadjust(mat2gray(H)));% J=imadjust(I)对图像I进行灰度调整
title('Hough变换的结果');
axis normal; % 设置坐标轴
hold on; % 保留当前坐标区中的绘图,从而使新添加到坐标区中的绘图不会删除现有绘图
colormap hot; % 设置调色板
实现效果:
图像处理之Hadamard变换和Hough变换相关推荐
- 直线/曲线检测:Randon变换与Hough变换
一. Randon 变换 Radon变换简介 Tips: Radon变换的基本原理: 一个平面内沿不同的直线(直线与原点的距离为d,方向角为alfa)对f(x,y)做线积分,得到的像F(d,alfa) ...
- hough变换连接边缘matlab,hough边缘检测matlab
利用matlab进行图像检测--直线提取_数学_自然科学_专业资料.Harbin Institute of Technology 图像工程导论 课程名称: ...(BW),'canny',thresh ...
- OpenCV2马拉松第22圈——Hough变换直线检測原理与实现
计算机视觉讨论群162501053 转载请注明:http://blog.csdn.net/abcd1992719g/article/details/27220445 收入囊中 Hough变换 概率Ho ...
- 【笔记】hough变换理解
概要 hough变换最早Paul Hough提出,用来提取图像中的直线,后来Richard Duda和Peter Hart推广到提取图像中任意形状,多为圆和椭圆.本文学习经典hough变换. houg ...
- Hough变换——直线检测(投票方法实现)
Hough变换介绍 Hough变换介绍: 简单来说,就是一个叫做Hough的人提出的,主要是将空间坐标转换到参数空间.比如一条直线:y = kx + b吧,我们看到这个后就会想到用x,y两个轴, ...
- MATLAB编程 利用Hough变换检测圆
MATLAB代码下载:利用Hough变换检测圆.docx-专业指导文档类资源-CSDN下载利用Hough变换检测圆,可以设置要检测圆的个数,最小尺寸.更多下载资源.学习资料请访问CSDN下载频道.ht ...
- hough变换连接边缘matlab,matlab图像处理hough变换程序执行问题
matlab图像处理hough变换程序执行问题0 pxkd82013.04.23浏览184次分享举报 程序如下: I= imread('D:\MATLAB7\fenkuai.bmp','bmp');% ...
- 小白学习图像处理7——Hough变换检测直线
文章目录 一.Hough变换的原理 1.过定点的直线方程 2.两点确定一条直线 3.方程的形式 二.实现过程 三.程序代码 1.程序片段 2.总程序 四.matlab 的hough函数 一.Hough ...
- 图像处理:Hough变换原理分析
一.前言 别看Hough变换似乎简单,但是,不发挥一下数学理论的功力是不可能理解的:本人早十几年前就用Hough,也一直想写Hough变换,但一懒就是10几年,乘春节前有空,就将Hough的详细细节揭 ...
最新文章
- R语言单变量分析实战:汇总统计(Summary Statistics)、频率表(Frequency Table)、图表(charts: boxplot、histogram、density)
- 四驱麦克纳姆轮运行原理
- golang gopsutil 进程 系统硬件 docker 信息获取
- Android应用开发提高篇(4)-----Socket编程(多线程、双向通信)(转载)
- 仟亿达2016年净利润2184万同比跌46%
- UGUIAnimator模块知识点随记
- extract和extractValue的差别
- c语言 中多一个分号,问什么C程序里总是提示缺少分号;,而明明有分号?
- python给定一个整数n、判断n是否为素数_输入一个大于3的整数n,判断它是否为素数...
- 通过代理上网 固定ip_浅析局部代理IP与全局代理IP的使用说明
- 机器学习速成课程 | 练习 | Google Development——编程练习:特征集
- 【linux】 linux 查看系统信息
- Windows核心编程_异型窗口(续)
- 二、博客首页完成《iVX低代码仿CSDN个人博客制作》
- 二分专项训练(二分搜索+二分答案的十贰道例题及解析
- 离散数学 之 命题公式的主析取合取范式(java实现)
- 群晖 Drive 的团队文件夹显示 “无法取得“
- 计算机网络体系结构划分
- 【问题】[已修改但尚未保存]/bin/bash: wq:未找到命令 Shell 已返回127
- 用Python自定义一个时钟类、定时任务类