hough函数 matlab,在不使用hough函数的情况下在MATLAB中进行Hough变换
我在
Rosetta Code的MATLAB中找到了Hough变换的实现,但是我无法理解它.另外我想修改它以显示原始图像和重建线(de-Houghing).
理解它和de-Houghing的任何帮助表示赞赏.谢谢
>为什么图像会翻转?
theImage = flipud(theImage);
>我无法绕过规范函数.它的目的是什么,是否可以避免?
编辑:norm只是欧几里德距离的同义词:sqrt(width ^ 2 height ^ 2)
rhoLimit = norm([width height]);
>有人可以解释如何/为什么计算rho,theta和houghSpace?
rho = (-rhoLimit:1:rhoLimit);
theta = (0:thetaSampleFrequency:pi);
numThetas = numel(theta);
houghSpace = zeros(numel(rho),numThetas);
>我如何去霍夫空间重建线条呢?
使用使用身份(眼睛)功能创建的对角线的10×10图像调用该功能
theImage = eye(10)
thetaSampleFrequency = 0.1
[rho,theta,houghSpace] = houghTransform(theImage,thetaSampleFrequency)
实际功能
function [rho,theta,houghSpace] = houghTransform(theImage,thetaSampleFrequency)
%Define the hough space
theImage = flipud(theImage);
[width,height] = size(theImage);
rhoLimit = norm([width height]);
rho = (-rhoLimit:1:rhoLimit);
theta = (0:thetaSampleFrequency:pi);
numThetas = numel(theta);
houghSpace = zeros(numel(rho),numThetas);
%Find the "edge" pixels
[xIndicies,yIndicies] = find(theImage);
%Preallocate space for the accumulator array
numEdgePixels = numel(xIndicies);
accumulator = zeros(numEdgePixels,numThetas);
%Preallocate cosine and sine calculations to increase speed. In
%addition to precallculating sine and cosine we are also multiplying
%them by the proper pixel weights such that the rows will be indexed by
%the pixel number and the columns will be indexed by the thetas.
%Example: cosine(3,:) is 2*cosine(0 to pi)
% cosine(:,1) is (0 to width of image)*cosine(0)
cosine = (0:width-1)'*cos(theta); %Matrix Outerproduct
sine = (0:height-1)'*sin(theta); %Matrix Outerproduct
accumulator((1:numEdgePixels),:) = cosine(xIndicies,:) + sine(yIndicies,:);
%Scan over the thetas and bin the rhos
for i = (1:numThetas)
houghSpace(:,i) = hist(accumulator(:,i),rho);
end
pcolor(theta,rho,houghSpace);
shading flat;
title('Hough Transform');
xlabel('Theta (radians)');
ylabel('Rho (pixels)');
colormap('gray');
end
hough函数 matlab,在不使用hough函数的情况下在MATLAB中进行Hough变换相关推荐
- 一文实现:在python中调用matlab程序,保姆级安装windows环境下的matlab.engine教程
一.前言 我最近在做一个基于图像融合的目标检测工程,我经常用matlab去研究和创新新型的图像融合算法,因为matlab有着python所不可比拟的数据可视化功能和大量的滤波分解框架包:在目标检测 ...
- matlab对多个矩阵循环,MATLAB:在不使用循环的情况下提取矩阵的多个部分
有许多方法可以在没有循环的情况下完成此操作.大多数解决方案涉及将向量x和y扩展为更大的索引矩阵,并且可能使用函数 REPMAT, BSXFUN或 SUB2IND中的一个或多个.可以在 here找到用于 ...
- Matlab多无人艇协同避碰情况下的仿真探索
作者是一名菜鸟研究生,目前的研究领域偏向于多机器人协同下的编队避碰及协同.近一年来开始探索在matlab上进行仿真.把目前的困难和瓶颈列出来,以供大家参考,少走弯路. 本文中有部分灵感来源于@RedG ...
- matlab 找不到 mcr,如何在没有MCR / MATLAB的情况下在C#中使用MATLAB编译的DLL?
对不起,如果这个问题已被提出,但我找不到我一直在寻找的东西.我想知道是否有办法在C#中使用MATLAB编译的c-shared库而不使用MCR / MATLAB(或者通常任何其他安装),例如使用这个简单 ...
- matlab如何将二进制转换为十进制,matlab – 如何在不使用循环的情况下将二进制转换为十进制?...
注意:此答案主要适用于无符号数据类型.为了转换为签名类型,需要一些额外的步骤,讨论 here. bin2dec功能是一个选项,但要求您先将矢量更改为字符串.与自己计算数字相比,bin2dec也可能比较 ...
- 能量守恒matlab,仿真动画软件设计作品--理想情况下能量守恒定律
%作者:020422 pole=1.8; xmax=2; ymax=2; basew=2.3; baseh=2.3; instant=0.2; figure('name','理想情况下能量守恒定律1' ...
- MATLAB绘图常见问题1(多子图情况下如何设置一个右侧的colorbar)
由于近期在完成老师的任务中,在设置图格式,发现在存在subplot多子图情况下设置同一个且指定位置的colorbar有难度,通过多次尝试,最终简化到如下代码,以便后续有网友遇到相同问题时可快速解决~ ...
- matlab多基地声呐,声呐位置误差情况下的运动目标多基地定位方法
CN 43-1258/TP ISSN 1007-130X 计算机工程与科学 Computer Engineering ] Science 第40卷第3 期2018年 3 月 Vol. #0,No. 3 ...
- matlab中dither 函数,(转)matlab里一些简单的函数
matlab之基本绘图函数 clear:清空内存中的变量: figure:强制生成一个新的个绘图窗口: syms x y t :声明变量: fplot(函数表达式,绘图区间): plot(横坐标向量, ...
最新文章
- AWS IoT Core 资源
- 括号匹配检查c语言,c 语言 检查括号匹配 不能运行 ????
- [推荐]经典炸弹人手机游戏[年兽防御战2]
- 从oracle里面取直,45个非常有用的 Oracle 查询语句小结
- paip.复制文件 文件操作 api的设计uapi java python php 最佳实践
- 京东智能硬件平台Alpha 让零售“无界限”
- 基于C++和AStar算法求解八数码问题的方案
- 初次联系导师短信模板_申博经验分享|如何联系导师?
- 时间管理表 - 《月总结计划表》
- 技术系统进化法则包括_八大技术系统进化法则主要包括哪些
- Egg.js VS Thinkjs 简单分析使用
- java qq邮箱发送端口号,MediaWiki 设置QQ邮箱SMTP(SSl方式)发送邮件
- C#配置文件操作】程序配置文件App.Config操作
- 华为云计算之双活容灾
- 基于龙格-库塔法Runge-Kutta的常微分方程的求解matlab仿真
- 怎么把图片文件转换成PDF文件
- 做到这一点,你也可以成为优秀的程序员(转)
- 华为初面 + 综合面试,附上面试题,share 给大家~
- AHPs——algebraic holographic proofs
- Nature:地球微生物组计划首发成果