matlab中多少角度,MATLAB 计算图像旋转角度

news2023/12/12 2:05:31

比如有图像1,将其旋转n度得到图像2,问如何比较两张图像得到旋转的度数n。

算法思路参考logpolar变换:

1.从图像中心位置向四周引出射线。

2.计算每根射线所打到图像上的像素累计和,得到极坐标灰度曲线。

3.比较两张图的灰度曲线,得到最相关的偏移位置,即为两张图像的旋转角度。

原图:

640cbb2b375ba59584db17d1ffa3d3ac.png

旋转了10°的图像:

12fa2c08e2e7f60e6563960586caa1f1.png

灰度曲线:

2a5a629e0d755da7e40c2ee9c7497362.png

代码如下:

main.m

1 clear all;

2 close all;

3 clc;

4

5 img1 = imread('lena.jpg');

6 img2 = imrotate(img1,15);

7

8 imshow(img1)

9 figure;

10 imshow(img2)

11

12 re1 = getCurve(img1);

13 re2 = getCurve(img2);

14

15 figure;

16 plot(re1);

17 hold on;

18 plot(re2);

19

20 su=zeros(length(re1),1);

21 for i=1:length(re1)

22 tmp = circshift(re2,i);

23 su(i) =sum(tmp.*re1);

24 end

25

26 [ma,ind] = max(su);

27 ind/10

getCurve.m

1 function re = getCurve(img)

2

3 [m,n]=size(img);

4

5 oy=m/2;

6 ox=n/2;

7

8 %求中心点到图像四个角的距离

9 up_left=sqrt((oy-0)^2+(ox-0)^2);

10 up_right=sqrt((oy-0)^2+(ox-n)^2);

11 down_left=sqrt((oy-m)^2+(ox-0)^2);

12 down_right=sqrt((oy-m)^2+(ox-n)^2);

13

14 num=3600;

15 %求中心点距离四角距离的最大值,作为变换后图像的高。

16 %这个最大值也是极坐标变换的极径

17 radius=round(max([up_left up_right down_left down_right]));

18 re = zeros(num,1);

19

20 for i=0:1:radius %纵坐标代表极径,不同情况不一样

21 for j=1:num %横坐标代表极角,为3600

22 %oy,ox作为极坐标变换中心坐标,需要作为偏移量相加

23 ind = j/10;

24 h=round(oy+i*sin(ind*pi/180));

25 w=round(ox+i*cos(ind*pi/180));

26

27 if h>0 && w> 0&& h<=m && w<=n %超出原图像的像素忽略

28 re(j)= re(j) +double(img(h,w));

29 end

30 end

31 end

32 re = re/sum(re);

33 end

标签:10,图像,re1,旋转,MATLAB,oy,ox,ind

来源: https://www.cnblogs.com/ybqjymy/p/13645488.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.dtcms.cn/news/show-326174.html

如若内容造成侵权/违法违规/事实不符,请联系七分地网进行投诉反馈,一经查实,立即删除!

相关文章

php内加百度熊掌号,百度熊掌号接入网站页面改造详细步骤

昨天成功的绑定了熊掌号&#xff0c;并且经过努力也改造成功了&#xff0c;今天把我的改造过程写下来&#xff0c;猴哥用的是WordPress程序&#xff0c;而且也是自适应的&#xff0c;下面熊掌号的页面改造也是选择的html5方式。header.php文件修改在主题目录下的 header.php 文…

FCN网络的训练——以燃气表数字识别为例

原文http://blog.csdn.net/hduxiejun/article/details/54234766 FCN网络的训练——以燃气表数字识别为例 目录 用 [TOC]来生成目录&#xff1a; FCN网络的训练以燃气表数字识别为例 目录0写在前面1训练2 测试3数据说明4主要修改如下5结果展示 原始版本新的版本网络结构可视化如…

matlab面向对象排序,matlab面向对象编程基础

matlab面向对象编程基础觉得有用的话,欢迎一起讨论相互学习~Matlab面向对象大体结构类定义的普通模板代码清单2.1.1classdef classNamepropertiesproperty1;property2;endmethodsfunction F1 Func1(class_obj,parameter1)...endfunction class_obj Func2(class_obj)...endend…

Python+OpenCV学习(17)---摄像机标定

PythonOpenCV学习&#xff08;17&#xff09;---摄像机标定 原文&#xff1a;http://blog.csdn.net/firemicrocosm/article/details/48594897 利用python学习OpenCV&#xff0c;个人感觉比较方便。函数的形式与C基本相同&#xff0c;所以切换过来还是比较好的&#xff0c;对于像…

php sql delete 返回值,delete方法

delete方法1、功能&#xff1a;删除数据表中满足条件的记录必须设置条件&#xff0c;否则该方法拒绝执行&#xff0c;以确保数据安全2、源码&#xff1a;系统中有二个delete方法&#xff0c;名称相同&#xff0c;功能不同1. /thinkphp/library/think/db/Buider.php 中的delete方…

使用OpenCV进行标定(Python)

使用OpenCV进行标定&#xff08;Python&#xff09; 原文&#xff1a;http://blog.csdn.net/u010128736/article/details/52875137 本人邮箱&#xff1a;sylvester0510163.com&#xff0c;欢迎交流讨论&#xff0c; 欢迎转载&#xff0c;转载请注明网址http://blog.csdn.net/u…

matlab消去前一个图,各位matlab高手,如何从2个3元方程中消去一个变量,然后做3维图形~...

近段时间不知道怎么原因,校园网不能访问百度空间,所以你的问题我没法看.后来用手机打开看的,虽然费了一些波折,但总还是看到了.对这个问题,其实用我之前在下面这个提问中说到的方法解决并不困难&#xff1a;当时我说到“无解时会报错(可通过try...catch结构处理)”,但没进一步做…

连续傅里叶变换,拉普拉斯变换之间的关系以及理解

连续傅里叶变换&#xff0c;拉普拉斯变换之间的关系以及理解 原文&#xff1a;https://zhuanlan.zhihu.com/p/24269279?referqianshan10 个月前一.傅里叶的局限性 傅里叶转换公式&#xff1a; 如果要想该公式成立&#xff0c;需符合狄利赫里条件&#xff0c;即&#xff0c;所…

php的div和p的区别,p标签与div标签区别

一、css属性分辨1、结构差距div与p均是一对最先与闭合标签。div以最先&#xff0c;以结束的一对标签。p以开端&#xff0c;以完结的一对标签。2、称谓分歧div是布局框架标签&#xff1b;p是段落标签&#xff0c;布局文章标签。3、div与p底子css属性div与p均独有一行的块元素标签…

matlab结果如何下载到单片机,程序如何下载到单片机中?单片机常用的四种烧写程序方式介绍...

单片机是一种可编程控制器&#xff0c;搭好硬件电路后&#xff0c;可以利用程序实现很多非常复杂的逻辑功能&#xff0c;与纯硬件电路相比&#xff0c;简化了硬件外围的设计、方便了逻辑的设计、丰富了逻辑的输出。不同厂家的单片机需要不同编程IDE来实现编程。在学习单片机之前…

单链表排序----快排 归并排序

单链表排序----快排 & 归并排序 原文&#xff1a;http://blog.csdn.net/u012658346/article/details/51141288 题目描述&#xff1a;   给定一个乱序的单链表的头节点&#xff0c;对该链表中的节点进行排序    要求时间复杂度为O(nlgn&#xff09;&#xff0c;空间复…

一文读懂卷积神经网络

原文&#xff1a;http://www.open-open.com/lib/view/open1425626861103.html 自今年七月份以来&#xff0c;一直在实验室负责卷积神经网络&#xff08;Convolutional Neural Network&#xff0c;CNN&#xff09;&#xff0c;期间配置和使用过theano和cuda-convnet、cuda-convn…

图像的低频是轮廓,高频是噪声和细节 小波变换

参考&#xff1a;http://blog.csdn.net/charlene_bo/article/details/70877999 图像的频率&#xff1a;灰度值变化剧烈程度的指标&#xff0c;是灰度在平面空间上的梯度。 &#xff08;1&#xff09;什么是低频? 低频就是颜色缓慢地变化,也就是灰度缓慢地变化,就代表着那…

看起来像它——图像搜索其实也不难

看起来像它——图像搜索其实也不难 翻译 2012年11月24日 23:14:0624185 13 19 这是我第一次翻译外文文章&#xff0c;如果翻译的不好&#xff0c;还望大家多包含&#xff01;以下黑色部分是作者原文的翻译&#xff0c;红色部分是我本人自己的理解和对其的补充。 原文&…

php循环批量插入数据,PHP中mysql批量插入大量数据的三种方法

1.for循环插入大量数据到数据库2.事务提交大量数据3.将SQL语句进行拼接values(),()...然后再一次性插入代码如下<?php ini_set(max_execution_time, 0);//返回链接对象function saveSql(){$link mysqli_connect(localhost:3306, root, huiyani) or die(connect failed);my…

linux中yum怎么安装服务器,yum安装(linux如何安装yum)

1.使用yum安装和卸载软件&#xff0c;有个前提是yum安装的软件包都是rpm格式的。 安装的命令是&#xff0c;yum install ~ 删除的命令是&#xff0c;yum remove ~ 其中~ 代表软件名2.用yum查询想安.Linux系统下yum命令查看安装了哪些软件包&#xff1a;1$yum list installed //…

linux 瘦客户机系统,2X ThinClientOS基于Linux的瘦客户端系统 | MOS86

你曾经走进图书馆&#xff0c;想知道电脑怎么都可以这么相似&#xff1f;您是否希望至少一次能够远程访问您的程序&#xff1f;你一直觉得像一个简单的ssh连接不是为你吗&#xff1f;如果您对任何这些问题回答“是”(或者如果您现在只是好奇)&#xff0c;我有两个词为you:瘦客户…

Linux内核启动速度优化,嵌入式Linux启动时间优化的秘密之五-Bootloader

描述本文主要讲述嵌入式Linux启动时间优化的秘密&#xff0c;我们继续上篇没有讲完的嵌入式Linux启动时间优化方法&#xff0c;本文主要会讲Bootloader。想看上一篇的请查看本文结尾的链接。Bootloader1. 裁剪删除不必要的功能。通常引导加载程序包括许多仅用于开发所需的功能。…

总结一下遇到的各种核函数

原文&#xff1a;http://www.bubuko.com/infodetail-991698.html 首先&#xff0c;再对核方法的思想进行描述&#xff0c;核函数的思想是一个伟大的想法&#xff0c;它工作简练巧妙的映射&#xff0c;解决了高维空间中数据量庞大的问题&#xff0c;在机器学习中是对算法进行非…

linux下运行yolo,deepin(linux)编译安装yolo v4测试效果

# 背景五一放假的最后一天我也凑了个热闹&#xff0c;试一下新鲜出炉的yolo v4&#xff0c;由于没有装CUDA和CUDNN&#xff0c;只试了一下在CPU上的速度和效果&#xff0c;电脑环境及编译依赖如下&#xff1a;* deepin 15.11桌面版* opencv 3.4.3(应该也是需要编译安装的&#…