Matlab中使用滑块旋转图像

2024-02-19

我在 Matlab 中有一个 GUI(使用 GUIDE),它看起来是这样的:

我想使用滑块旋转图像并实时显示变化。

我使用轴来显示图像。

我怎样才能做到这一点?

EDIT:我正在构建 OCR 应用程序。这就是我旋转盘子时的样子,数字完全变形了。

thanks.


下面是一个 GUI 示例:

function rotationGUI()
    %# read image
    I = imread('cameraman.tif');

    %# setup GUI
    hFig = figure('menu','none');
    hAx = axes('Parent',hFig);
    uicontrol('Parent',hFig, 'Style','slider', 'Value',0, 'Min',0,...
        'Max',360, 'SliderStep',[1 10]./360, ...
        'Position',[150 5 300 20], 'Callback',@slider_callback) 
    hTxt = uicontrol('Style','text', 'Position',[290 28 20 15], 'String','0');

    %# show image
    imshow(I, 'Parent',hAx)

    %# Callback function
    function slider_callback(hObj, eventdata)
        angle = round(get(hObj,'Value'));        %# get rotation angle in degrees
        imshow(imrotate(I,angle), 'Parent',hAx)  %# rotate image
        set(hTxt, 'String',num2str(angle))       %# update text
    end
end

如果您更喜欢在 GUIDE 中构建 GUI,请按照下列步骤操作:

  • 创建 GUI,并添加必要的组件:轴、滑块、静态文本(拖放)

  • 使用“属性检查器”,根据需要更改滑块属性::Min/Max/Value/SliderStep。如果您分配一个也会有所帮助Tag能够在代码中找到组件。

  • 图中的xxxx_OpeningFcn函数,读取图像并将其存储在handles结构,然后显示它:



    handles.I = imread('cameraman.tif');
    imshow(I, 'Parent',findobj(hObject,'Tag','imgAxis'))  %# use tag you assigned
    guidata(hObject, handles);         %# Update handles structure
  
  • 为滑块创建回调事件处理程序,并添加代码:


    angle = round( get(hObject,'Value') );
    imshow( imrotate(handles.I,angle) )
  

EDIT:图像旋转是一种仿射变换,它将输入图像像素的位置 (x,y) 映射到输出图像的新坐标 (x2,y2)。问题是输出坐标可能并不总是整数。由于数字图像是在离散像素网格上表示的,因此采用了某种形式的重采样/插值(这就是为什么直线在以某些角度旋转时可能看起来呈锯齿状)。

(插图借自:了解数字图像插值 http://www.cambridgeincolour.com/tutorials/image-interpolation.htm)

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Matlab中使用滑块旋转图像 的相关文章

  • 查找数组中元素之间的平均差异的有效方法

    希望标题不会让人困惑 通过例子来展示很简单 我有一个像这样的行向量 1 5 6 我想找到每个元素之间的平均差异 此示例中的差异为 4 和 1 因此平均值为 2 5 这是一个小例子 我的行向量可能非常大 我是 MatLab 新手 那么有没有一
  • 使用 java 执行 Matlab 函数

    我正在编写一个应用程序 它使用 matlab 进行图像处理 然后使用 Java 接口显示结果 由于某些原因 我必须同时使用 Java 和 Matlab 如何在java中使用matlab函数 如何创建和访问界面 MATLAB控制 http m
  • 在 C/C++ 中调用 MATLAB API

    我刚刚从某处听说 对于数值计算 MATLAB 确实提供了一些用户友好的 API 如果你在 C C 代码中调用这些 API 你可以显着加快计算速度 但我在MATLAB文档中没有找到这样的信息 例如http www mathworks com
  • 在 MATLAB 中用两个值替换向量值

    我必须创建一个以向量作为输入的函数v和三个标量a b and c 该函数替换了的每个元素v等于a有一个二元素数组 b c 例如 给定v 1 2 3 4 and a 2 b 5 c 5 输出将是 out 1 5 5 3 4 我的第一次尝试是尝
  • python 正弦和余弦精度

    如何提高Python正弦和余弦精度 例如 我想使用以下代码 只需计算随机复向量 x 的 y cos acos x import numpy as np N 100000 x np zeros N 1j np zeros N for k in
  • 在 Matlab 中显示有理数

    我有两个整数 m n 它们一起形成 m n 形式的有理数 现在我只想以这种理性的形式在 Matlab 中显示它们 我可以通过这样做来做到这一点 char sym m n 所以 如果 例如m 1 n 2 Matlab将显示1 2 然而 如果m
  • 随着速度变化,速度表针规绕其中心旋转

    Hi all 我编写了一个应用程序 其中有一个速度计 其指针垂直设置为 90 度 我试图以每秒变化的速度绕其中心旋转指针 我在文本视图中显示变化的速度 从 0 到 120 随机 我正在从远程服务获取速度并显示在文本视图中 因此 当速度发生变
  • 单元格的 Fieldnames 函数的等效项

    正如标题所说 只是想知道是否有一个函数可以用作字段名 http www mathworks co uk help matlab ref fieldnames html 但适用于单元格 所以如果我有类似的东西 a imread redsqua
  • 检查图像中是否有太薄的区域

    我正在尝试验证雕刻机的黑白图像 更多的是剪贴画图像 不是照片 我需要考虑的主要事情之一是区域的大小 或线条的宽度 因为机器无法处理太细的线条 所以我需要找到比给定阈值更细的区域 以此图为例 竖琴的琴弦可能太细而无法雕刻 我正在阅读有关 Ma
  • 将数据提示堆栈放在轴标签顶部,并在轴位置发生更改后更新轴标签

    此问题仅适用于 unix matlab Windows 用户将无法重现该问题 我在尝试创建位于 y 轴标签顶部的数据提示时遇到问题 下图很能说明问题 正如您所看到的 在 ylabel 附近创建的数据提示将到达 ylabel 文本的底部 而期
  • 如何使用Matlab将数据保存到Excel表格中?

    我想将数据以表格形式保存在 Excel 工作表中 它应该看起来像 Name Age R no Gpa Adnan 24 18 3 55 Ahmad 22 12 3 44 Usman 23 22 3 00 每次当我执行我的文件时类数据 m 下
  • 从 MATLAB 调用 Java?

    我想要Matlab程序调用java文件 最好有一个例子 需要考虑三种情况 Java 内置库 也就是说 任何描述的here http docs oracle com javase 6 docs api 这些项目可以直接调用 例如 map ja
  • 如何在Matlab中打印带有千位分隔符的整数?

    我想使用逗号作为千位分隔符将数字转换为字符串 就像是 x 120501231 21 str sprintf 0 0f x 但随着效果 str 120 501 231 21 如果内置fprintf sprintf做不到 我想可以使用正则表达式
  • 命令 A(~A) 在 matlab 中的真正作用是什么

    我一直在寻找找到矩阵非零最小值的最有效方法 并在论坛上找到了这个 设数据为矩阵A A A nan minNonZero min A 这是非常短且高效的 至少在代码行数方面 但我不明白当我们这样做时会发生什么 我找不到任何关于此的文档 因为它
  • MATLAB 编译器与 MATLAB 编码器

    两者有什么区别 据我了解 MATLAB Compiler将MATLAB代码包装成 exe文件 这样就可以在不安装MATLAB的情况下使用它 并且只需要MCR 除此之外 MATLAB Builder NE 还可以用于生成与 Net 框架一起使
  • Matlab的导入函数的范围是什么?

    我正在尝试将一些用 Matlab 编写的代码转换为独立的 编译的 Matlab 应用程序 然而 在出现一些奇怪的错误之后 我意识到代码大量使用了从路径中添加和删除的操作 以避免多次使用多个具有相同名称 但结果 计算不同 的函数这一事实 环顾
  • Ilnumerics Ilpanel 在 winform 中编译成 dll 并加载到 matlab 时不激活

    我想将 Visual studio 2012 中用 C 编写的 winform 编译为 dll 然后将其加载到 matlab 2013a 中 然后 我想使用 matlab net 接口与 winform 进行交互 侦听其事件并通过一组预定义
  • 禁止 MATLAB 自动获取焦点[重复]

    这个问题在这里已经有答案了 我有以下问题 在我的 MATLAB 代码中 我使用如下语句 figure 1 更改某些数据的目标数字 问题是 在此 MATLAB 之后 系统将焦点集中在具有该图形的窗口上 当我在后台运行一个大脚本并尝试在计算机上
  • Matlab:3D 堆积条形图

    我正在尝试创建一个 3D 堆积条形图 如这个问题所示 Matlab 中的 3D 堆叠条形图 https stackoverflow com questions 13156133 3d stacked bars in matlab 5D 然而
  • 如何将数据传递给 MATLAB oncleanup 函数?

    我有一个编译好的 matlab 程序 可以自动调整机器参数 在调整周期结束时 我需要恢复一些原始设置 有时会发生意外错误 有时用户会发现调整算法未正常工作 因此应终止 使用 control C 如果发生可预测的错误 我可以使用 try ca

随机推荐

  • 如何使用每个容器的白名单

    我在 docker 模式下使用 traefik 它从 docker 容器中检索大部分配置 acme domains enabled frontend rules 目前所有容器都可以从 WWW 0 0 0 0 访问 我想知道如何将对单个容器的
  • 在Python中查找大图像中图像的所有位置

    我扫描了一个面板 由于限制而无法显示 但我尝试 模拟 它 这张图片模拟了我的扫描 白色背景 带有圆形黑色贴纸 每个贴纸中间都有一个白色的小圆圈 有些贴纸在扫描结果上略有不同 但形状 贴纸的类型始终相同 现在我需要编写一个代码 能够查看该图像
  • 如何让 Worker() 跨域工作?

    我一直在 BeSpin 上进行黑客攻击 试图让它在我的 CDN 上工作 并且通过转换为使用 JSONP 我克服了 theme less 的 XHR 跨域请求 我遇到的下一个问题是新的 Worker js file 其中 js file 位于
  • 为什么 Mac OS X 中的 Mach-O 库需要 install_name_tool 和 otool?

    我正在使用最新版本的 Xcode 4 开发 Cocoa 应用程序 我想将动态库链接到我的项目 dylibs 我在某处读到 在我的项目中添加库是不够的 因为我必须运行install name tool and otool使我的项目使用捆绑在我
  • 从应用程序提示启用 GPS 后如何刷新并获取当前位置?

    我目前正在开发一个 Android 应用程序 如果 GPS 未打开 它会提示用户启用 GPS 并且我已使用警报对话框来实现此目的 在我从设置中启用 GPS 并按后退按钮返回到我的应用程序后 Toast 消息显示 0 00 0 00 尽管如果
  • 在 Android 中使用基于 HTTPS 的 SOAP+XML 请求 Exchange Web Services 2007/2010

    我使用 Microsoft 的以下 C 代码来请求 EWS 2010MSDN链接 http msdn microsoft com en us library cc526065 aspx它起作用了 我需要同样的 Android 解决方案 我尝
  • 如何在asp.net中获取Sigma网格的记录数

    我在用西格玛网格 http www sigmawidgets com products sigma grid2 在一个 ASP NET 项目中 如果数据库返回 null 我想显示没有找到记录 我尝试过一些事情 例如 var grid Sig
  • 为什么我不能分配给 Pandas DataFrame 的一部分?

    我很困惑为什么以下pandas未成功将 A 列的最后两个值分配给 B 列的前两个条目 df pd DataFrame A 1 2 3 4 5 6 7 B 10 20 30 40 50 60 70 df df join pd DataFram
  • 关键事件:ProcessCmdKey

    我试图在一个小测试 Windows 窗体应用程序上获得一些键盘响应 并且我有一个粗略的解决方案 即覆盖 ProcessCmdKey 然而 我遇到了一些问题 并且发现了不一致的地方 不同的事件 有没有办法告诉 在争论中ref Message
  • 具有当前行条件的 Spark 窗口函数

    我正在尝试计算给定的order id过去 365 天内有多少订单已付款 这不是问题 我使用窗函数 https databricks com blog 2015 07 15 introducing window functions in sp
  • JVM 中的最大线程数?

    Java虚拟机最多可以维护多少个线程 我在最初的问题中没有解释这一点 但我正在尝试对 JVM 进行基准测试 并想尝试看看它可以同时维护多少个线程 在循环中创建线程直到引发异常是一种选择 但是 我想知道是否有更好的方法来执行此操作 您的操作系
  • glassfish autodeploy 通过简单的应用程序给出 404

    我安装了普通 glassfish v3 并将我的 war 放入C glassfishv3 glassfish domains domain1 autodeploy我的 Windows PC 的文件夹 战争包含一个用 java JSF ric
  • java.net.SocketException:recvfrom失败:ECONNRESET(连接由对等方重置)

    我在 Android 中有一个 HTTP 服务器 我为每个 HTTP 请求创建一个新线程 如提到的链接中所示 http hc apache org httpcomponents core ga httpcore examples org a
  • 在 vue-formulate 的嵌套组中使用空列表

    我正在使用 vue 和 vue Formulate 并想要构建一个带有嵌套组 https vueformulate com guide inputs types group 例如 我有一个用户 外部组 每个用户可以有一个标签列表 内部组 标
  • 从 kotlin 创建新的节点模块对象

    我正在尝试用 Kotlin 编写一个小型的 node js 应用程序来测试和使用 javascript 互操作 从公开原型 Bar 的外部节点模块 foo 我尝试创建 Bar 的新实例 在Javascript中我会简单地写一些类似的东西 v
  • 在 Angular 中使用源映射生成生产版本 - CLI

    生产构建后如何保留源映射 现在 我的命令如下所示 build prod ng build app release prod cp R lang dist 我尝试将其更改为 ng build app release sourceMap tru
  • 如何获得定义频带内的所有 fft bin 数量?

    我用的是matlab软件 对于我的问题 我有一个音频信号 我正在其上应用 STFT 我取一段 46 ms specifially chosen 我的信号消失了y audio signal 并使用FFT在上面 然后我进入下一段 直到音频信号结
  • 有可用的 FreeRTOS 解释语言库吗?

    我在一家公司工作 该公司使用 FreeRTOS 为多个设备创建固件 最近 我们对新功能的要求已经超出了我们固件工程师的工作能力 但我们现在也无力雇用任何新人 即使进行微小的更改 也需要固件人员在非常低的级别上进行修改 我一直在为 FreeR
  • 如何使用textview.getLayout()?它返回空值

    我正在尝试设置布局textview所以我可以用getEllipsisCount 方法 但下面的代码返回 null 作为布局值 我如何进行布局然后使用getEllipsisCount 0 method public class MainAct
  • Matlab中使用滑块旋转图像

    我在 Matlab 中有一个 GUI 使用 GUIDE 它看起来是这样的 我想使用滑块旋转图像并实时显示变化 我使用轴来显示图像 我怎样才能做到这一点 EDIT 我正在构建 OCR 应用程序 这就是我旋转盘子时的样子 数字完全变形了 tha