Matlab2012a的图像处理工具箱的imshow函数
在处理图片文件时,除了使用matlab自带的image函数,还可以考虑用matlab的图像处理工具箱。这个工具箱提供了imshow和imtool两个函数,可实现图片的显示。
这两个函数都支持Handle Graphics体系结构,它们可创建图像对象,并将其显示在图形对象所包含的坐标轴对象中。
Imshow是工具箱的基本函数,可实现图片的显示。这个函数支持多种图像类型,如灰度(强度)、真彩色(RGB)、二进制和索引。
另一个函数imtool可启动图像处理窗口,这个窗口可显示图像,并提供了一些常见的处理功能,如滚动条、像素区域工具、图像信息工具和调整对比度工具。
一般来说,在处理图片时,使用这两个函数比用image和imagesc更好,因为图像处理工具箱为了优化图像显示,自动设置了某些handle Graphics属性。下表列出了每种图像类型的这些属性及其设置。表中,X表示索引图像,I表示灰度图像,BW表示二值图像,RGB表示真彩色图像。
小贴士:imshow和imtool都可以支持图像自动缩放。当使用语法imshow(I,'DisplayRange',[])调用时,类似地对于imtool,函数将轴CLim属性设置为[min(I(:)) max(I(:))]。CDataMapping总是对灰度图像进行缩放,因此值min(I(:))使用第一个colormap颜色显示,值max(I(:))使用最后一个colormap颜色显示。
Handle Graphics Property 句柄图像属性 | Indexed Images 索引图像 | Grayscale Images 灰度图像 | Binary Images 二进制图像 | Truecolor Images 真彩色图像 |
CData (Image) | Set to the data in X | Set to the data in I | Set to data in BW | Set to data in RGB |
CDataMapping (Image) | Set to 'direct' 设置为直接 | Set to 'scaled' 设置为缩放 | Set to 'direct' 设置为直接 | Ignored when CData is 3-D 当CData为三维时忽略 |
CLim (Axes) | Does not apply 无 | double: [0 1] uint8: [0 255] uint16: [0 65535] | Set to [0 1] | Ignored when CData is 3-D 当CData为三维时忽略 |
Colormap (Figure) | Set to data in map | Set to grayscale colormap | Set to a grayscale colormap whose values range from black to white | Ignored when CData is 3-D 当CData为三维时忽略 |
参考内容所处位置:Image processing toobox - user's guide - displaying and exploring images - overview.
下面再来看如何使用交互工具的一个例子。
先看代码
clc;clear;% 读入左右图片
left_image = imread('peppers.png');
right_image = edge(left_image(:,:,1),'canny');% 创建窗口
hFig = figure('Toolbar','none',...'Menubar','none',...'Name','My Image Compare Tool',...'NumberTitle','off',...'IntegerHandle','off');% 显示左图
subplot(121)
hImL = imshow(left_image);% 显示右图
subplot(122)
hImR = imshow(right_image);% 为左图创建滚动面板
hSpL = imscrollpanel(hFig,hImL);
set(hSpL,'Units','normalized','Position',[0 0.1 .5 0.9])% 为右图创建滚动面板
hSpR = imscrollpanel(hFig,hImR);
set(hSpR,'Units','normalized','Position',[0.5 0.1 .5 0.9])% 添加放大框
hMagBox = immagbox(hFig,hImL);
pos = get(hMagBox,'Position');
set(hMagBox,'Position',[0 0 pos(3) pos(4)])% 添加总览工具
imoverview(hImL) % 从滚动面板获取API
apiL = iptgetapi(hSpL);
apiR = iptgetapi(hSpR);% 同步左右滚动面板
apiL.setMagnification(apiR.getMagnification())
apiL.setVisibleLocation(apiR.getVisibleLocation())% 当左滚动面板缩放时 告诉右滚动面板
apiL.addNewMagnificationCallback(apiR.setMagnification);% 当右滚动面板缩放时 告诉左滚动面板
apiR.addNewMagnificationCallback(apiL.setMagnification);% 当左滚动面板平移时 告诉右滚动面板
apiL.addNewLocationCallback(apiR.setVisibleLocation);% 当右滚动面板平移时 告诉左滚动面板
apiR.addNewLocationCallback(apiL.setVisibleLocation);
这个效果是这样的,看下总览:
有两个窗口,代码实现了左右图的联动。不管在总览图还是主界面交互,都是会产生同步的作用效果。
这个例子位于:Image processing toobox - user's guide - building GUIs with modular tools - Customizing Modular Tool interactively - Example: Biulding an image comparison tool.
相关文章:

Matlab2012a的图像处理工具箱的imshow函数
在处理图片文件时,除了使用matlab自带的image函数,还可以考虑用matlab的图像处理工具箱。这个工具箱提供了imshow和imtool两个函数,可实现图片的显示。 这两个函数都支持Handle Graphics体系结构,它们可创建图像对象,…...

Linux_红帽8学习笔记分享_10(SELinux管理与防火墙)
Linux_红帽8学习笔记分享_10(SELinux管理与防火墙) 文章目录 Linux_红帽8学习笔记分享_10(**SELinux管理与防火墙**)1.Linux系统的安全机制1.1 Filesystem1.2 Service1.3 Firewall1.4 SELinux 2.SElinux理论概述3.SElinux的配置文件3.1 SELINUX参数3.2 SELINUXTYPE参数 4.查看和…...
【资料分享】
文章目录 前言《408统考,真题&解析(2009-2021)》《Android 移动应用基础教程(Android Studio)(第2版)》黑马程序员 源代码《Hackers & Painters》--Paul Graham《数字电路与逻辑设计(第3版…...

NewBing 还无法访问的几个问题
大部分的AI自媒体都在说,Bing new已经向全世界开放了,我也凑一下这个热闹,用Edge浏览器打开,访问https://www.bing.com/new?ccus 想体验一下Bing new的效果,结果如下: 相信很多人都碰到了这个问题 此体验…...

将 Segment Anything 扩展到医学图像领域
文章目录 前言技术交流SAM 拆解分析从医学角度理解 SAM 的效用MedSAM实验总结 前言 SAM 是一种在自然图像分割方面取得成功的模型,但在医学图像分割方面表现不佳。MedSAM 首次尝试将 SAM 的成功扩展到医学图像,并成为用于分割各种医学图像的通用工具。为…...

毕业5年,技术越来越好,混的却越来越差...
别人都是越来越好,而我是越来越差! 17年,从一个普通的本科毕业,那个时候的我,很迷茫,简历上的求职岗位都不知道写什么,因为家里是农村的,朴实的父母也帮不上什么忙,关于…...
C#实现把txt文本数据快速读取到excel中
主要介绍了C#实现把txt文本数据快速读取到excel中,本文直接给出示例代码,需要的朋友可以参考下 今天预实现一功能,将txt中的数据转到excel表中,做为matlab的数据源。搜集一些c#操作excel的程序。步骤如下: 下载一个Microsoft.Office.Interop.Excel.dll 在项目中引用。 编…...
Office转换需要用到的SDK(建议)
PDF相关SDK1. PDFBox:一个基于Java的开源库,可以读取、创建和操作PDF文件。2. iText:一个用于Java和.NET的开源库,可以创建、编辑和操作PDF文件。3. MuPDF:一个轻量级的开源PDF阅读器和渲染器,可用于创建和…...
python语法入门到面向过程编程(二)
类型总结 一:整形基本使用(int) 1 int用途:年龄 号码 等级… 2 定义方式 age10 ageint(10) xint(‘1111’) int只能将纯数字的字符串转成十进制的整型 print(type(x)) 3 整形常用操作内置的方法 算数运算(、—、*、/࿰…...

Java常用类
基本数据类型包装类 Java是一种纯面向对象语言,但是java中有8种基本数据类型,破坏了java为纯面向对象的特征。为了承诺在java中一切皆对象,java又给每种基本数据类型分别匹配了一个类,这个类我们称之为包装类/封装类。每个基本数据…...

4.30下周美联储携非农来袭黄金多空该如何布局?
近期有哪些消息面影响黄金走势?下周黄金多空该如何研判? 黄金消息面解析:周五(4月28日)当周金价维持震荡交投,金价基本持稳于2000美元下方。支撑和打压金价的因素参半。经济衰退的担忧,以及避险情绪支持金价&#x…...
利用python查找指定目录下大于300M的文件
直接上代码,欢迎小伙伴们交流 import os def getBigFile(path, filesize): # 遍历指定目录及其子目录 for dirpath, dirnames, filenames in os.walk(path): for filename in filenames: target_file os.path.join(dirpath, filename…...

浅尝ChatGPT使用之Python字典嵌套排序
一、背景 所负责的项目从v1.0升级到v2.0之后,发送到kafka的Json数据字段顺序和内容有所改变, v1.0版本推送数据样例: {"name": "小王子","author": "安托万德圣-埃克苏佩里(1900-1944&#…...

最大网络流算法之dinic算法详解
1、题目描述 On the Internet, machines (nodes) are richly interconnected, and many paths may exist between a given pair of nodes. The total message-carrying capacity (bandwidth) between two given nodes is the maximal amount of data per unit time that can b…...
051、面试必刷TOP101--链表(230503)
提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言链表1、BM1 反转链表2、BM2 链表内指定区间反转3、BM3 链表中的节点每k个一组翻转4、BM4 合并两个排序的链表5、BM5 合并k个已排序的链表6、BM6 判断链表中是否…...

开源中国面试准备
dockerFile常见命令 1、FROM 设置要制作的镜像基于哪个镜像,FROM指令必须是整个Dockerfile的第一个指令,如果指定的镜像不存在默认会自动从Docker Hub上下载 2、MAINTAINER 镜像作者的信息,比如名字或邮箱地址 语法:MAINTAINER n…...
基于J2EE的B2C电子商务系统开发与实现
摘要 当今社会,科学技术突飞猛进,知识经济初见端倪。电子商务作为一种新型的贸易方式,极大地促进了全球经济贸易的发展,同时也正在改变人们的生活方式和思想观念。电子商务是指整个贸易活动实现电子化,交易各方以电子交易方式而进行的商业交易。世界贸易组织电子商务专题报告定…...

三分钟教你看懂 spring 官方文档
新手如何学会查看官方文档API 首先进入官网:这里以 spring boot 为例 ,进入spring 官方地址 我们进入 spring boot 这里我们要看文档当然是要 learn 了,所以点进去。 我需要的东西在 IO 模块里面,点 IO 进入 发送邮件是不是有了…...

基于simulink使用射频模块集天线块对天线阵列的射频系统进行建模
一、前言 本 例 说明 如何 对 包括 天线 阵列 的 MIMO 接收 和 发射 RF 系统 进行 建模。该设计从单个RF链的预算分析开始,然后扩展到多个天线。RF Blockset 天线模块对天线阵列进行全波分析,支持对效应和缺陷进行高保真建模,并结合射频系统的…...
从小学习编程的路线与编程进阶
对于从小学习编程的学生,通常会从基础的编程概念和语法开始学习。以下是一个可能的路线: 1. 学习计算机基础知识,包括计算机硬件、操作系统和网络等基本概念。 2. 掌握基本的编程概念和语法,例如变量、数据类型、条件语句和循环语…...
反向工程与模型迁移:打造未来商品详情API的可持续创新体系
在电商行业蓬勃发展的当下,商品详情API作为连接电商平台与开发者、商家及用户的关键纽带,其重要性日益凸显。传统商品详情API主要聚焦于商品基本信息(如名称、价格、库存等)的获取与展示,已难以满足市场对个性化、智能…...
k8s从入门到放弃之Ingress七层负载
k8s从入门到放弃之Ingress七层负载 在Kubernetes(简称K8s)中,Ingress是一个API对象,它允许你定义如何从集群外部访问集群内部的服务。Ingress可以提供负载均衡、SSL终结和基于名称的虚拟主机等功能。通过Ingress,你可…...
Oracle查询表空间大小
1 查询数据库中所有的表空间以及表空间所占空间的大小 SELECTtablespace_name,sum( bytes ) / 1024 / 1024 FROMdba_data_files GROUP BYtablespace_name; 2 Oracle查询表空间大小及每个表所占空间的大小 SELECTtablespace_name,file_id,file_name,round( bytes / ( 1024 …...
服务器硬防的应用场景都有哪些?
服务器硬防是指一种通过硬件设备层面的安全措施来防御服务器系统受到网络攻击的方式,避免服务器受到各种恶意攻击和网络威胁,那么,服务器硬防通常都会应用在哪些场景当中呢? 硬防服务器中一般会配备入侵检测系统和预防系统&#x…...

2025 后端自学UNIAPP【项目实战:旅游项目】6、我的收藏页面
代码框架视图 1、先添加一个获取收藏景点的列表请求 【在文件my_api.js文件中添加】 // 引入公共的请求封装 import http from ./my_http.js// 登录接口(适配服务端返回 Token) export const login async (code, avatar) > {const res await http…...
leetcodeSQL解题:3564. 季节性销售分析
leetcodeSQL解题:3564. 季节性销售分析 题目: 表:sales ---------------------- | Column Name | Type | ---------------------- | sale_id | int | | product_id | int | | sale_date | date | | quantity | int | | price | decimal | -…...

JUC笔记(上)-复习 涉及死锁 volatile synchronized CAS 原子操作
一、上下文切换 即使单核CPU也可以进行多线程执行代码,CPU会给每个线程分配CPU时间片来实现这个机制。时间片非常短,所以CPU会不断地切换线程执行,从而让我们感觉多个线程是同时执行的。时间片一般是十几毫秒(ms)。通过时间片分配算法执行。…...
【学习笔记】深入理解Java虚拟机学习笔记——第4章 虚拟机性能监控,故障处理工具
第2章 虚拟机性能监控,故障处理工具 4.1 概述 略 4.2 基础故障处理工具 4.2.1 jps:虚拟机进程状况工具 命令:jps [options] [hostid] 功能:本地虚拟机进程显示进程ID(与ps相同),可同时显示主类&#x…...

项目部署到Linux上时遇到的错误(Redis,MySQL,无法正确连接,地址占用问题)
Redis无法正确连接 在运行jar包时出现了这样的错误 查询得知问题核心在于Redis连接失败,具体原因是客户端发送了密码认证请求,但Redis服务器未设置密码 1.为Redis设置密码(匹配客户端配置) 步骤: 1).修…...

OPenCV CUDA模块图像处理-----对图像执行 均值漂移滤波(Mean Shift Filtering)函数meanShiftFiltering()
操作系统:ubuntu22.04 OpenCV版本:OpenCV4.9 IDE:Visual Studio Code 编程语言:C11 算法描述 在 GPU 上对图像执行 均值漂移滤波(Mean Shift Filtering),用于图像分割或平滑处理。 该函数将输入图像中的…...