Matlab:利用Matlab软件进行GUI界面设计实现图像的基本操作

这篇具有很好参考价值的文章主要介绍了Matlab:利用Matlab软件进行GUI界面设计实现图像的基本操作。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

📌数模之路+Matlab 专栏正在持续更新中,案例的原理图解析、各种模块分析💖这里都有哦,同时也欢迎大家订阅专栏,获取更多详细信息哦✊✊✊
✨个人主页:零小唬的博客主页
🥂欢迎大家 👍点赞 📨评论 🔔收藏
✨作者简介:20级计算机专业学生一枚,来自宁夏,可能会去做大前端,目前还在努力学习并记录博客中🧸
🎀本系列专栏: 数模之路+Matlab
💕希望本文对你在学习Matlab软件和参加数学建模的过程中有所帮助,如有不足请指正一起学习,一起进步🥇
⛪座右铭:只要你还愿意努力,世界一定会给你惊喜


实验要求

Matlab:利用Matlab软件进行GUI界面设计实现图像的基本操作

实验过程

  如下图所示,需要拖入自己需要的控件和按钮,根据自己的喜好进行修改样式即可.
Matlab:利用Matlab软件进行GUI界面设计实现图像的基本操作
Matlab:利用Matlab软件进行GUI界面设计实现图像的基本操作


回调函数

上传图片

function upload_image(hObject, eventdata, handles)
[FileName,PathName] = uigetfile({'*.jpg;*.jpeg;*.png;*.bmp'},'选择一张图片');
if ~isnumeric(FileName)
    img = imread(fullfile(PathName, FileName));
    if numel(size(img))==3
        img = rgb2gray(img);
    end
    axes(handles.axes1);
    imshow(img, []);
    handles.img = img;
end

  该函数使用 uigetfile() 函数打开文件选择框,以便用户选择他们想要上传的图片。最后,它在 axes1 中使用 imshow() 函数显示该图像,并将 img 存储为 handles 中的一个字段以便其他回调函数使用。

保存图片

function store_image(hObject, eventdata, handles)
img = handles.img; 
if ~isempty(img) 
    [filename, pathname] = uiputfile({'*.jpg','JPEG files (*.jpg)';'*.png','PNG files (*.png)'},'Save Image'); 
    if ~isnumeric(filename) && ~isnumeric(pathname) 
        fullname = fullfile(pathname,filename); 
        imwrite(img, fullname); 
    end
end

  首先,它检查 handles 中的存储的图像 img 是否为空。如果不为空,则使用 uiputfile() 函数打开文件对话框,以便用户选择图像的保存位置和名称。然后,它检查文件名和路径是否为数字(文件对话框可以返回数字),以确保用户没有取消选择。最后,它使用 imwrite() 函数将图像写入用户选择的文件。

清空重置

function empty_reset(hObject, eventdata, handles)
% Clear
handles.img = [];
axes(handles.axes1);
cla;
axes(handles.axes2);
cla;

  这是一个用于清除 axes1 和 axes2 中图像的回调函数。它会将 handles 中存储的 img 变量清空,然后使用 cla() 函数清除 axes1 和 axes2 中的任何内容。

关闭界面

function close(hObject, eventdata, handles)
% Close 
delete(handles.figure1);

  这是一个用于关闭 GUI 窗口的回调函数。它通过 delete() 函数删除 handles.figure1 对象,从而关闭 GUI 窗口。

水平镜像

function horizontal_mirror(hObject, eventdata, handles)
% 读取当前Axes中的图片
img = getimage(handles.axes1);
% 水平翻转
img = flip(img, 2);
% 显示翻转后的图片
imshow(img, 'parent', handles.axes2);

  这是一个用于实现图像水平翻转的回调函数。它通过 getimage() 函数获取当前Axes中的图像数据,并使用 flip() 函数对图像数据进行水平翻转。然后,它使用 imshow() 函数在第二个Axes中显示翻转后的图像。

竖直镜像

function vertical_mirror(hObject, eventdata, handles)
% 读取当前Axes中的图片
img = getimage(handles.axes1);
% 竖直翻转
img = flip(img, 1);
% 显示翻转后的图片
imshow(img, 'parent', handles.axes2);

  这是一个实现图像竖直翻转的回调函数。类似于 horizontal_mirror 函数,该函数也使用 getimage() 函数获取当前 Axes 中的图像数据,并使用 flip() 函数对图像数据进行竖直翻转。最后,它使用 imshow() 函数在第二个 Axes 中显示翻转后的图像。

平移操作

  可以使用imwarp() 函数对一张图片进行平移变换。然后,您可以使用 imagesc() 函数将变换后的图像显示在第二个坐标系 axes2

function translation(hObject, event)
    % 获取当前选定的点坐标
    point = get(gca,'CurrentPoint');
    x = point(1,1);
    y = point(1,2);

    image = imread('myImage.png');
    tform = affine2d([1 0 0; 0 1 0; x y 1]); 
    warpedImage = imwarp(image, tform, 'OutputView', imref2d(size(image)));

    % 在第二个坐标系中显示变换后的图像
    axes2 = findobj(gcf, 'Tag', 'axes2');
    imagesc(warpedImage, 'Parent', axes2);
    axis(axes2, 'equal');
end

  首先获取当前选中点的坐标并创建一个平移变换矩阵。然后,我们使用imread() 函数读取待平移的图片,并使用 imwarp() 函数对图片执行平移变换。最后,我们使用imagesc() 函数将变换后的图片显示在第二个坐标系 axes2中。

function myGUI_CreateFcn(hObject, event)
    % 创建第二个坐标系 axes2
    axes2 = axes('Parent', hObject, 'Tag', 'axes2');
    % 设置 axes2 的位置和大小
    set(axes2, 'Position', [0.5 0.1 0.45 0.8]);
end

  需要在 GUI 的 CreateFcn 回调函数中创建了 axes2,并将其标记为 ‘axes2’。我们还在代码中设置了 axes2 的位置和大小。

缩放操作

  可以使用imresize() 函数对一张图片进行缩放。然后,您可以使用 imagesc() 函数将缩放后的图像显示在第二个坐标系 axes2中。

function zoom(hObject, event)
    % 获取当前选定的点坐标
    point = get(gca,'CurrentPoint');
    x = point(1,1);
    y = point(1,2);

    % 获取图片并进行缩放
    image = imread('myImage.png');
    scaleFactor = 0.5; % 缩放因子
    scaledImage = imresize(image, scaleFactor);

    % 在第二个坐标系中显示缩放后的图像
    axes2 = findobj(gcf, 'Tag', 'axes2');
    imagesc(scaledImage, 'Parent', axes2);
    axis(axes2, 'equal');
end

  首先获取当前选中点的坐标并创建一个缩放因子。然后,我们使用imread() 函数读取待缩放的图片,并使用 imresize() 函数对图片进行缩放。最后,我们使用 imagesc() 函数将缩放后的图片显示在第二个坐标系 axes2中。

旋转操作

function rotate(hObject, event)
    % 获取当前选定的点坐标
    point = get(gca,'CurrentPoint');
    x = point(1,1);
    y = point(1,2);

    % 获取图片并进行旋转
    image = imread('myImage.png');
    angle = 30; % 旋转角度
    rotatedImage = imrotate(image, angle);

    % 在第二个坐标系中显示旋转后的图像
    axes2 = findobj(gcf, 'Tag', 'axes2');
    imshow(rotatedImage, 'Parent', axes2);
end

  首先获取当前选中点的坐标并创建一个旋转角度。然后,我们使用imread() 函数读取待旋转的图片,并使用 imrotate() 函数对图片进行旋转。最后,我们使用 imshow() 函数将旋转后的图片显示在第二个坐标系 axes2 中

错切操作

function myCallback(hObject, event)
    % 获取当前选定的点坐标
    point = get(gca,'CurrentPoint');
    x = point(1,1);
    y = point(1,2);

    % 获取图片并进行错切操作
    image = imread('myImage.png');
    shearAngle = 20; 
    tform = affine2d([1, tand(shearAngle), 0; 0, 1, 0; 0, 0, 1]);
    shearedImage = imwarp(image, tform);

    % 在第二个坐标系中显示错切后的图像
    axes2 = findobj(gcf, 'Tag', 'axes2');
    imshow(shearedImage, 'Parent', axes2);
end

  首先获取当前选中点的坐标并创建一个错切角度。然后,我们使用imread() 函数读取待错切的图片,并创建一个仿射变换矩阵,使用 affine2d() 函数将其传递给该函数,并将其作为imwarp() 函数的输入来执行错切操作。最后,我们使用imshow() 函数将错切后的图片显示在第二个坐标系 axes2 中


  🎉记录是为了不停的思考,创作更是为了更好的思考,有人说过:2023年以后的中国市场将永远属于长期主义者,bug是改不完的也是写不完的,只能说这次遇到了希望下次不会在出现同样的bug就行,如果你觉得对您有帮助,欢迎一起交流学习,本人也是一名计算机小白,目前还在努力中~文章来源地址https://www.toymoban.com/news/detail-458033.html

到了这里,关于Matlab:利用Matlab软件进行GUI界面设计实现图像的基本操作的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【老生谈算法】基于matlab时域频域处理的语音信号变声处理系统设计与算法原理(论文+程序源码+GUI图形用户界面)——变声算法

    大家好,今天给大家介绍基于matlab的语音信号变声处理系统设计与算法原理(论文+程序源码)。 运用matlab软件实现对声音的变声处理,利用离散付里叶变换进行频谱分析;设计数字滤波器组;通过时域和频域方法做出各种音效效果,实现变速(慢放、快放),变调(频谱左

    2024年02月04日
    浏览(61)
  • python怎么做gui界面,python gui界面设计

    本篇文章给大家谈谈python怎么做gui界面,以及python gui界面设计,希望对各位有所帮助,不要忘了收藏本站喔。 开发图形用户界面(GUI)应用程序是Python的重要应用之一,标准库tkinter用来实现图形用户界面。 tkinter模块是Python事实上的GUI库,包含在Python的基本安装包中Python自动化

    2024年04月14日
    浏览(51)
  • 【Qt设计开发】GUI界面设计开发

      本文是我在学习QT的GUI界面设计过程当中的心得和学习笔记,在学习时已经有C, C++,Python的基础。文章附上了学习的代码,仅供大家参考。如果有问题,有错误欢迎大家留言。此外,博主还有另外几篇文章,分别关于 Python基础知识 、 Python的具体应用 、 C语言指针结构体

    2024年02月02日
    浏览(50)
  • python如何做出图形界面,python图形化界面设计gui

    本篇文章给大家谈谈python编写图形化界面的工具,以及python如何做出图形界面,希望对各位有所帮助,不要忘了收藏本站喔。 大家好,小编来为大家解答以下问题,python如何做出图形界面,用python做图形用户界面,今天让我们一起来看看吧! 一.定义理解 Python自带了tkinter 模

    2024年02月20日
    浏览(54)
  • GUI Guider设计UI界面移植到STM32

    什么是 GUI-Guider? GUI Guider 是恩智浦为 LVGL 开发了一个上位机GUI 设计工具,可以通过拖放控件的方式设计 LVGL GUI 页面,加速 GUI 的设计。 设计完成的 GUI 页面可以在 PC 上仿真运行,预览自己设计的UI界面。确认设计完毕之后可以生成 C 代码,再整合到 MCU 项目中。 软件下载地址

    2024年02月02日
    浏览(38)
  • 如何设计和构建一个PyQt图形用户界面(GUI)

    欢迎来到PyQt的世界!设计和构建一个图形用户界面(GUI)可以是一项令人兴奋且有趣的任务。 首先,你需要确保已经安装了PyQt。如果你还没有安装,可以通过以下命令在你的Python环境中安装: 现在,让我们开始设计你的第一个PyQt GUI! 第一步:创建窗口 想象一下,如果你

    2024年02月12日
    浏览(43)
  • 【Python入门系列】第八篇:Python中GUI编程和图形界面设计

    Python中的GUI编程是指使用Python语言创建图形用户界面(GUI)的过程。通过GUI,用户可以与程序进行交互,通过按钮、菜单、文本框等控件来操作程序。 Python提供了多个库和框架来实现GUI编程,其中最常用的是Tkinter、wxPython、PyQt和PyGTK等。这些库提供了丰富的控件和功能,使开

    2024年02月07日
    浏览(55)
  • qt中使用 ui 文件进行界面设计

    目录 1、创建 Qt 应用 ​2、项目创建成功 3、直接点击打开 mainwindow.ui 文件 4、随便从左边侧边栏拖拽一个空间到 界面设计区域 5、在右侧边栏右键点击 pushButton 控件,点击转到槽 6、根据实际需要选择对应的信号,我这里方便演示选择 clicked()信号,直接点击 OK 7、自动在

    2024年02月04日
    浏览(42)
  • MATLAB 之 可视化图形用户界面设计

    MATLAB 提供了图形用户界面开发环境(Graphical User Interface Development Environment,GUIDE),在这种开发环境下,用户界面设计变得方便、直观,实现了 “所见即所得” 的可视化设计。 1.1 图形用户界面设计模板 在 MATLAB 命令行窗口输入 guide 命令,或在 MATLAB 主窗口中选择 “主页”

    2024年02月11日
    浏览(44)
  • Matlab:使用 GUIDE 设计 UI 界面并设置窗口大小

    Matlab:使用 GUIDE 设计 UI 界面并设置窗口大小 Matlab 的 GUIDE 工具箱是一个非常强大而灵活的工具,可以方便地创建自定义的用户界面。在设计 UI 界面时,首先要考虑的是界面的大小和布局。本文将介绍如何在 GUIDE 中设置 UI 窗口大小。 创建新的 GUI 首先,在 Matlab 中打开 GUID

    2024年02月11日
    浏览(37)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包