当前位置: 首页 > news >正文

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 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.lryc.cn/news/65077.html

相关文章:

  • Linux_红帽8学习笔记分享_10(SELinux管理与防火墙)
  • 【资料分享】
  • NewBing 还无法访问的几个问题
  • 将 Segment Anything 扩展到医学图像领域
  • 毕业5年,技术越来越好,混的却越来越差...
  • C#实现把txt文本数据快速读取到excel中
  • Office转换需要用到的SDK(建议)
  • python语法入门到面向过程编程(二)
  • Java常用类
  • 4.30下周美联储携非农来袭黄金多空该如何布局?
  • 利用python查找指定目录下大于300M的文件
  • 浅尝ChatGPT使用之Python字典嵌套排序
  • 最大网络流算法之dinic算法详解
  • 051、面试必刷TOP101--链表(230503)
  • 开源中国面试准备
  • 基于J2EE的B2C电子商务系统开发与实现
  • 三分钟教你看懂 spring 官方文档
  • 基于simulink使用射频模块集天线块对天线阵列的射频系统进行建模
  • 从小学习编程的路线与编程进阶
  • [实训] 实验1-SPI数据传输基础实验(上)
  • 微软骚操作恶心Win10用户,上网得先看广告
  • 为了做低代码平台,这些年我们对.NET的DataGridView做的那些扩展
  • 洛谷 子集积 题解
  • Boost笔记 1:下载、编译、安装、测试
  • tiechui_lesson01_入口函数和卸载函数
  • 密码学【java】初探究加密方式之非对称加密
  • 网络安全和黑客技能:15本必读书籍推荐
  • 电话号码的字母组合
  • PAT A1032 Sharing
  • Git常见问题汇总