Matlab2012a的图像处理工具箱的imshow函数

news/2024/6/17 19:55:48 标签: matlab, 图像处理, 计算机视觉

在处理图片文件时,除了使用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 XSet to the data in ISet to data in BWSet 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 colormapSet 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.


http://www.niftyadmin.cn/n/285089.html

相关文章

服务(第十六篇)mysql①基础

什么是数据库? 数据: ①描述事物的符号记录称为数据(Data),数字、文字、图形、图像、声音、档案记录等; ②数据是以“记录”的形式按照统一的格式进行存储的,而不是杂乱无章的。 行&#xf…

【算法】刷题中的位运算

作者:指针不指南吗 专栏:算法篇 🐾人类做题的过程,其实是暴搜的过程🐾 文章目录 1.位运算概述2.位运算符3.位运算应用3.1整数的奇偶性判断3.2有关 2 的幂的应用3.3lowbit(x)返回x的最后一位13.4二进制数中1的个数3.5求…

Oracle PL/SQL例13:比较运算符

文章目录 Oracle PL/SQL例13:比较运算符比较运算符介绍官方文档比较运算符代码例Example 2-43 Relational Operators in ExpressionsExample 2-44 LIKE Operator in ExpressionExample 2-45 Escape Character in PatternExample 2-46 BETWEEN Operator in Expressio…

记一次swoole连接数太多导致的错误

原先就有点担心这个项目正式上线会出现各种问题,所以刚上线就赶紧查看日志 果然,频繁出现错误: WARNING Server::accept_connection(): accept() failed, Error: Too many open files[24] 这个错误通常是由于操作系统限制了进程能够打开的…

【Java开发】Spring Cloud 11 :Gateway 配置 ssl 证书(https、http 访问)

最近研究给微服务项目配置 ssl 证书,如此才可以对接微信小程序(需要使用 https 请求)。传统单体项目来说,首先往项目中添加证书文件,然后在配置文件中配置 ssl 证书路径、密码等相关信息;那么微服务这么多项…

( 数组和矩阵) 667. 优美的排列 II ——【Leetcode每日一题】

❓667. 优美的排列 II 难度:中等 给你两个整数 n 和 k ,请你构造一个答案列表 answer ,该列表应当包含从 1 到 n 的 n 个不同正整数,并同时满足下述条件: 假设该列表是 answer [a1, a2, a3, ... , an] &#xff0…

springboot+vue教师人事档案管理系统(源码+文档)

风定落花生,歌声逐流水,大家好我是风歌,混迹在java圈的辛苦码农。今天要和大家聊的是一款基于springboot的教师人事档案管理系统。项目源码以及部署相关请联系风歌,文末附上联系信息 。 💕💕作者&#xff1…

【无人车】无人驾驶地面车辆避障研究(Matlab代码实现)

💥💥💞💞欢迎来到本博客❤️❤️💥💥 🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。 ⛳️座右铭&a…