Maltab GUI课程设计——图像找不同

2023-11-02 02:31

本文主要是介绍Maltab GUI课程设计——图像找不同,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

文章目录

  • 课程设计
    • 平台:Matlab App designer
    • 功能实现:图像找不同
    • 目的:
    • 演示:
    • 代码示例:
  • 欢迎交流


课程设计

平台:Matlab App designer

功能实现:图像找不同

目的:

1.Matlab代码编写能力进阶;
2.学会利用Matlab GUI设计图形交互界面,开发有趣的应用;

演示:

1.读取图片,通过图像对减和形态学处理找到两张图片的不同之处,并将不同之处用方框标记在原图上
图像找不同
换张图试试
图像找不同

2.效果展示
图像找不同
图像展示

代码示例:

图像找不同按钮的回调函数:

im1=app.pic1;
im2=app.pic2;
[R,C,~] = size(im1);%获取图像大小
im2 = imresize(im2,[R,C]); %确保im2与im1图像大小一致
%% {找不同}
% 平滑
H = fspecial('gaussian',7,3);
s1 = imfilter(im1,H,'same');
s2 = imfilter(im2,H,'same');
% 对减。
ecolor = app.xxxxx(s1,s2);% 利用matlab自带的图像对减函数
egray = rgb2gray(ecolor);% 灰度化操作
bw  = imbinarize(egray);% 二值化操作
imshow(ecolor,'parent',app.UIAxes_3)%对减图显示到坐标区3
% 移除小对象 小区域肯定是噪声 (参考值:3~20,根据图像大小而定)
obj1= bwareaopen(bw,20);
% 图像闭运算,先膨胀后腐蚀操作, 连接邻近区域以及去除中间空点
se = strel('disk',11);
obj2 = imclose(obj1,se);
imshow(obj2,'parent',app.UIAxes_4)%对减图显示到坐标区4
% 获取目标区域
[label,num] = bwlabel(obj2);
coorList  = regionprops(label);
%% {绘制}
for n = 1:numim1= insertShape(im1,'Rectangle',coorList(n).BoundingBox,'Color','red','linewidth',2);im2= insertShape(im2,'Rectangle',coorList(n).BoundingBox,'Color','green','linewidth',2);
end
imshow(im1,'parent',app.UIAxes)%显示到坐标区1
imshow(im2,'parent',app.UIAxes_2)%显示到坐标区2

欢迎交流

代码事宜,私信博主

这篇关于Maltab GUI课程设计——图像找不同的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/327475

相关文章

基于人工智能的图像分类系统

目录 引言项目背景环境准备 硬件要求软件安装与配置系统设计 系统架构关键技术代码示例 数据预处理模型训练模型预测应用场景结论 1. 引言 图像分类是计算机视觉中的一个重要任务,目标是自动识别图像中的对象类别。通过卷积神经网络(CNN)等深度学习技术,我们可以构建高效的图像分类系统,广泛应用于自动驾驶、医疗影像诊断、监控分析等领域。本文将介绍如何构建一个基于人工智能的图像分类系统,包括环境

2. c#从不同cs的文件调用函数

1.文件目录如下: 2. Program.cs文件的主函数如下 using System;using System.Collections.Generic;using System.Linq;using System.Threading.Tasks;using System.Windows.Forms;namespace datasAnalysis{internal static

【Prometheus】PromQL向量匹配实现不同标签的向量数据进行运算

✨✨ 欢迎大家来到景天科技苑✨✨ 🎈🎈 养成好习惯,先赞后看哦~🎈🎈 🏆 作者简介:景天科技苑 🏆《头衔》:大厂架构师,华为云开发者社区专家博主,阿里云开发者社区专家博主,CSDN全栈领域优质创作者,掘金优秀博主,51CTO博客专家等。 🏆《博客》:Python全栈,前后端开发,小程序开发,人工智能,js逆向,App逆向,网络系统安全,数据分析,Django,fastapi

uva 10061 How many zero's and how many digits ?(不同进制阶乘末尾几个0)+poj 1401

题意是求在base进制下的 n!的结果有几位数,末尾有几个0。 想起刚开始的时候做的一道10进制下的n阶乘末尾有几个零,以及之前有做过的一道n阶乘的位数。 当时都是在10进制下的。 10进制下的做法是: 1. n阶位数:直接 lg(n!)就是得数的位数。 2. n阶末尾0的个数:由于2 * 5 将会在得数中以0的形式存在,所以计算2或者计算5,由于因子中出现5必然出现2,所以直接一

Java 创建图形用户界面(GUI)入门指南(Swing库 JFrame 类)概述

概述 基本概念 Java Swing 的架构 Java Swing 是一个为 Java 设计的 GUI 工具包,是 JAVA 基础类的一部分,基于 Java AWT 构建,提供了一系列轻量级、可定制的图形用户界面(GUI)组件。 与 AWT 相比,Swing 提供了许多比 AWT 更好的屏幕显示元素,更加灵活和可定制,具有更好的跨平台性能。 组件和容器 Java Swing 提供了许多

速了解MySQL 数据库不同存储引擎

快速了解MySQL 数据库不同存储引擎 MySQL 提供了多种存储引擎,每种存储引擎都有其特定的特性和适用场景。了解这些存储引擎的特性,有助于在设计数据库时做出合理的选择。以下是 MySQL 中几种常用存储引擎的详细介绍。 1. InnoDB 特点: 事务支持:InnoDB 是一个支持 ACID(原子性、一致性、隔离性、持久性)事务的存储引擎。行级锁:使用行级锁来提高并发性,减少锁竞争

MyBatis 切换不同的类型数据库方案

下属案例例当前结合SpringBoot 配置进行讲解。 背景: 实现一个工程里面在部署阶段支持切换不同类型数据库支持。 方案一 数据源配置 关键代码(是什么数据库,该怎么配就怎么配) spring:datasource:name: test# 使用druid数据源type: com.alibaba.druid.pool.DruidDataSource# @需要修改 数据库连接及驱动u

linux中使用rust语言在不同进程之间通信

第一种:使用mmap映射相同文件 fn main() {let pid = std::process::id();println!(

Verybot之OpenCV应用一:安装与图像采集测试

在Verybot上安装OpenCV是很简单的,只需要执行:         sudo apt-get update         sudo apt-get install libopencv-dev         sudo apt-get install python-opencv         下面就对安装好的OpenCV进行一下测试,编写一个通过USB摄像头采

Golang GUI入门——andlabs ui

官方不提供gui标准库,只好寻求第三方库。 https://github.com/google/gxui 这个gui库是谷歌内部人员提供的,并不是谷歌官方出品,现在停止维护,只好作罢。 第三方gui库 找了好多,也比较了好多,最终决定使用的是还是 https://github.com/andlabs/ui 相信golang gui还会发展的更好,期待更优秀的gui库 由于andlabs