精华内容
下载资源
问答
  • matlab读取并显示envi标注格式img图像,支持显示单波段图像、波段图像,用户可以根据需要选择不同波段组合显示,提供三种不同图像显示方法可供学习,另附详细注释说明
  • 主要使用multibandread函数读取dat文件,显示单波段图像,波段可以按波段显示,详细方法前面有解释,multibandread函数的参数可以根据自己的hdr文件输入
  • matlab代码使用multibbandread()函数对高光谱数据集进行读取,可将任意波段以图像形式进行展示
  • 因为本学期需要c#的课程设计,然后我就网上自学习了一些这方面的知识,比如c#调用matlab函数的例子,网上也比较。但是基本都是零零碎碎的。我也是网上零零碎碎找的,所以我算是整理了一下。整个文章都是自己...

    因为本学期需要c#的课程设计,然后我就在网上自学习了一些这方面的知识,比如c#调用matlab函数的例子,在网上也比较多。但是基本都是零零碎碎的。我也是在网上零零碎碎找的,所以我算是整理了一下。整个文章都是自己整理。

    1.先在matlab里面写入函数

    这里的函数我是带了参数,name是图片的路径。

    function ppp
    i=imread('D:\ffinal\source.bmp');//读入照片,个人推荐是相对路径,记得把照片放在那个目录下。相对路径下 文件夹可以移动。绝对路径下 若是移动文件夹的位置,代码也需要作出相应的修改
    imshow(i);
    imwrite(i,'D:\ffinal\21.bmp');
    end
    (这里参考了小伙伴提供的代码。)
    

    这里是在c#里面显示图片,以figure窗口显示,若是想要嵌入到c#窗口,我采用的方法是将图片保存在电脑上,再在c#里面提取图片。(若是有很好的方法,欢迎大家提供,谢谢)

    2.生成dll(附图 详细步骤)

    (1)在命令行窗口输入deploytool
    在这里插入图片描述

    (2)点击圈中地方

    展开全文
  • matlab实现图像读取、写入和显示

    万次阅读 多人点赞 2019-04-25 13:05:52
    matlab实现图像读取、写入和显示 1.图像的读取 使用imread()函数来读取一幅图像。例如,下行代码实现的就是一个名为“lena.jpg”的图像文件,并将图像的像素矩阵赋值给变量I。文件名需要用单引号括起来,此外,...

    1.图像的读取

           使用imread()函数来读取一幅图像。例如,下行代码实现的就是一个名为“lena.jpg”的图像文件,并将图像的像素矩阵赋值给变量I。文件名需要用单引号括起来,此外,末尾的分号在matlab中用于取消输出。

    I = imread('lena.jpg');
    

           上面这个命令没有包含任何路径信息,imread()函数会从当前工作目录中寻找并读入图像文件。如果在当前目录中没有找到该文件,则matlab会尝试在搜索路径中寻找该文件。
           我们还可以显式地给出文件的完整路径,例如:

    I = imread('C:\lena.jpg');
    

    2.图像的写入

           使用函数imwrite()来写入图像文件,该函数语法形式为:

    imwrite(I,'filename')
    

            其中,参数I表示一个二维图像数组,可由imread()函数得到,filename必须是一种可识别的文件格式。例如,下面的命令可以将图像以lena为文件名存储为PNG格式的文件:

    imwrite(I,'lena.png')
    

           也可以写成:

    imwrite(I,'lena','png')
    

           如果filename中不包含路径信息,那么imwrite()就会把文件保存至当前的工作目录中。此外,imwrite()函数还有一种适用于JPEG图像的语法形式,如下:

    imwrite(I,'filename.jpg','quality',q)
    

           其中,q是整数,取值范围是0~100之间。JPEG是一种采用有损压缩为编码方式的图像文件格式,这里的q就是用来控制压缩后的图像质量的,q值越小,则表示图像的质量退化就越严重。

    3.图像的显示

    3.1 显示单幅图像

           通常使用imshow()函数来显示图像文件,它可以自动地创建句柄图形图像对象,并自动设置各句柄图形属性和图像特征,从而使得显示效果得以优化。imshow()函数的基本语法形式如下:

    imshow(I,[G])
    

           其中,参数I表示一个二维图像数组,可由imread()函数得到,G表示该图像的灰度级数,默认为256。另外,还可以写成如下格式:

    imshow(I,[low,high])
    

           low和high表示所有小于low的值都显示为黑色,所有大于high的值都显示为白色,在low和high之间的值都以默认的级数显示为中等亮度值。

           当使用imshow()同时输出多幅图像时,后面的图像总是会覆盖前面的图像。为了同时显示多幅图像,就要用到figure()函数。该函数的作用是建立图形窗口对象。例如:

    % figure
    imshow(IMG1)
    figure(5)
    imshow(IMG2)
    

           运行上述代码,显示结果如下:

    lena
    baboon

    显示多幅图像
    3.2 关闭图形窗口

           要关闭图形窗口,使用close()函数。例如:

    close(5)
    

           括号中的参数是窗口句柄,该语句的作用是关闭Figure 5窗口。在默认情况下(即不输入任何参数),matlab会选择关闭当前窗口(也就是最后创建的一个窗口)。此外,我们还可以使用close all命令来关闭所有的图形窗口。

    3.3 同一窗口显示多幅图像

           此时需要用subplot()函数,该函数的语法形式为subplot(m,n,p)或subplot(m n p)。其中,m表示图排成m行,n表示图排成n列,p表示图所在的位置,p=1表示从左到右、从上到下的第一个位置。例如:

    figure;
    subplot(1,2,1),subimage(IMG1);
    title('lena');
    subplot(1,2,2),subimage(IMG2);
    title('baboon');
    

           运行结果如下:

    在这里插入图片描述

    在同一窗口显示多幅图像

           函数title()作用是给子图加标题,而函数subimage()的作用则是显示子图,这里也可以换成imshow()。其中,subimage()函数会给图像加上坐标而imshow()则不会。此外,对图像而言,坐标原点位于左上角。

    参考资料

    1. 数字图像处理原理与实践MATLAB版 [左飞 著] 2014年版
    展开全文
  • Matlab图像处理新手——图像分割和画框显示篇 **前言:**许多人说Matlab对未来的工作没什么用,就目前了解的情况而言并非如此。如:现版本已有matlab转化成C语音的功能;matlab与DSP(API协议技术)、FPGA、西门子...

    Matlab图像处理新手——图像分割和画框显示篇

    **前言:**许多人说Matlab对未来的工作没什么用,就目前了解的情况而言并非如此。如:现版本已有matlab转化成C语音的功能;matlab与DSP(API协议技术)、FPGA、西门子PLC(OPC技术)等。matlab得益于他丰富的库函数。当然,他不能作为硬件的主语言,当作一种手段吧。另外,作为图像处理的新手,希望自己可以坚持写技术博客,像那些大牛一样。总结这方面的知识,方法,具体的实施。。
    话不多说,第一篇记录图像分割。先说要处理的目标和要达到的效果。静态物体的分割,达到画框显示和处理后的图片。
    分割方法:形态学的腐蚀膨胀。原本想用阈值法的,但是效果不理想。
    程序:`

    I=imread(‘1.jpg’);%读取图片

    I=rgb2gray(I);%灰度化
    I=im2double(I);%将输入转换为double类。若输入是uint8类 uint16 类 logical类则函数将其转换为范围[0,1]之间的类,若输入是double类,则函数im2double将返回一个与输入相等的数组.
    figure,imshow(I),title(‘原图’);
    se=strel(‘disk’,10);%strel用于膨胀腐蚀及开闭运算等操作的结构元素对象;创建半径为10的圆
    ft=imtophat(I,se);%对输入的灰度图或二值图I进行形态高帽滤波,高帽滤波计算图像的形态开启(使用imopen),然后从原始图像中减去结果。imtophat使用结构元素SE,其中SE是由strel返回。SE必须是单一的结构元素对象,而不是一个包含多结构元素对象的数组。
    Th=graythresh(ft);
    Th
    G=im2bw(ft,Th);
    figure,imshow(G),title(‘局部阈值’);`
    画框显示的程序:
    function [state,result]=draw_rect(img,startPosition,windowSize,showOrNot)
    % 函数调用:[state,result]=draw_rect(img,startPosition,windowSize,showOrNot)
    % 函数功能:在图像画个长方形框
    % 函数输入:img为原始的大图,可为灰度图,可为彩色图
    % startPosition 框的左上角在大图中的坐标(每行代表x,y坐标),startPosition=[10,30],分别表示x,y为10,30
    % windowSize 框的大小 windowSize=[112,92] 分别表示宽、高
    % showOrNot 是否要显示结果?默认为显示出来?
    % 函数输出:state – 表示程序结果状态?
    % result - 结果图像数据

    if nargin < 4
    showOrNot = 1;
    end

    rgb = [255 0 0]; % 边框颜色
    result = img;
    [imgH, imgW] = size(img);
    lineSize = 3; % 边框大小,取1,2,3
    windowSize(1,1)=windowSize(1,1);
    windowSize(1,2) = windowSize(1,2);
    if windowSize(1,2) > size(img,1) ||…
    windowSize(1,1) > size(img,2)
    state = -1; % 说明窗口太大,图像太小,
    disp(‘the window size is larger then image…’);
    return;
    end
    if size(img,3) == 3
    for k=1:3
    for i=1:size(startPosition,1) %矩形框的总数
    if(startPosition(i,1)>=0 && startPosition(i,2)>=0)
    result(startPosition(i,2),startPosition(i,1):startPosition(i,1)+windowSize(i,1),k) = rgb(1,k); %画上边框
    result(startPosition(i,2):startPosition(i,2)+windowSize(i,2),startPosition(i,1)+windowSize(i,1),k) = rgb(1,k);%画右边框
    result(startPosition(i,2)+windowSize(i,2),startPosition(i,1):startPosition(i,1)+windowSize(i,1),k) = rgb(1,k); %画下边框
    result(startPosition(i,2):startPosition(i,2)+windowSize(i,2),startPosition(i,1),k) = rgb(1,k); %画左边框

    			if lineSize == 2 || lineSize == 3
    				result(startPosition(i,2)+1,startPosition(i,1):startPosition(i,1)+windowSize(i,1),k) = rgb(1,k);  
    				result(startPosition(i,2):startPosition(i,2)+windowSize(i,2),startPosition(i,1)+windowSize(i,1)-1,k) = rgb(1,k);
    				result(startPosition(i,2)+windowSize(i,2)-1,startPosition(i,1):startPosition(i,1)+windowSize(i,1),k) = rgb(1,k);
    				result(startPosition(i,2):startPosition(i,2)+windowSize(i,2),startPosition(i,1)-1,k) = rgb(1,k);
    			
    				if lineSize == 3
    					result(startPosition(i,2)-1,startPosition(i,1):startPosition(i,1)+windowSize(i,1),k) = rgb(1,k);   
    					result(startPosition(i,2):startPosition(i,2)+windowSize(i,2),startPosition(i,1)+windowSize(i,1)+1,k) = rgb(1,k);
    					result(startPosition(i,2)+windowSize(i,2)+1,startPosition(i,1):startPosition(i,1)+windowSize(i,1),k) = rgb(1,k);
    					result(startPosition(i,2):startPosition(i,2)+windowSize(i,2),startPosition(i,1)+1,k) = rgb(1,k);
                      end
    			end
    		end
        end
    end
    

    end
    state = 1;

    if showOrNot == 1
    figure;
    hold on;
    imshow(result);
    end

    在这里吐槽一下,关于function的调用也是摸索了一下。。是综合了四个程序,做成自己需要的。在此有所感想,关于码程序这件事,是在诸多程序之中,找到自己想要的,综合,不断地改改改。主函数就不贴出来了,根据自己的情况写就行了。然后综合上面的算法处理部分就完成了。。
    接下来要做的1、是基于动态目标的跟踪检测,算法还在研究之中,显示动态的话自然得用自动分割了。。上面的是交互式分割。2、总结出静态目标的分割方法,并码一遍代码。主要是阈值法,区域分割法和分水岭分割法。。

    展开全文
  • 为本人原创代码,用matlab实现张图片同时三维空间中显示,有例程,代码可直接运行。
  • Matlab代码】显示多幅图像

    千次阅读 2020-10-08 21:06:09
    %ex2_7.m I=imread('pout.tif');...%不同窗口显示 figure;%创建一个新的窗口 imshow(I); figure; imshow(I,[]); %相同窗口显示 figure; subplot(1,2,1); imshow(I); subplot(1,2,2); imshow(I,[]);
    %ex2_7.m
    I=imread('pout.tif');%读取图像
    %在不同窗口显示
    figure;%创建一个新的窗口
    imshow(I);
    figure;
    imshow(I,[]);
    %在相同窗口显示
    figure;
    subplot(1,2,1);
    imshow(I);
    subplot(1,2,2);
    imshow(I,[]);
    

    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

    展开全文
  • Matlab实现图像阈值分割

    万次阅读 多人点赞 2017-11-13 15:40:22
    使用matlab实现阈值分割,实现两种方法,一是人工选择阈值进行分割,而是自动选择阈值进行分割。... 根据直方图显示,此图像符合双峰分布的基本特征,峰谷大概120左右,所以人工选择分割的阈值为120,自动分割上采
  • 可以使用matlab代码打开、关闭串口,读取串口数据,可以处理串口错误信息,自定义带有数据帧封装与解析算法,支持通道绘制波形。纯代码实现。
  • matlab axes中显示多张图像

    千次阅读 2019-09-29 22:11:56
    matlab axes中显示多张图像 imshow() 使用imshow(filename, ‘Parent’, ‘…’, ‘XData’, […, …], ‘YData’, […, …])函数。 详见imshow() 官方文档 参数解读 ‘Parent’: 图像对象的父级坐标区,值为...
  • MATLAB GUI显示图片的方法

    万次阅读 多人点赞 2018-11-20 10:54:22
     在MATLAB的命令行中显示图片或者数据,十分简单,仅通过imshow,plot或者imagesc等函数即可。  而在MATLAB GUI中显示图片,通常需要借助Axes控件来实现。相比而言,一些操作。 GUI中显示图片  创建一个空白的...
  • matlab无法显示图片

    千次阅读 2020-12-16 17:04:36
    今天突然遇到matlab无法显示图片的问题,imshow()之后会出现figure框,但是一片灰(什么都没有),无法正常显示图片。找了很办法之后无果,最后重启了一次matlab,完美解决。 以后如果遇到一些莫名其妙的问题,先...
  • matlab 图片批量叠加显示

    千次阅读 2019-12-16 20:53:01
    namelist_1=dir('D:\matlab1\file\1\*.jpg'); namelist_4=dir('D:\matlab1\file\4\*.jpg'); len_1=length(namelist_1); len_4=length(namelist_4); for i=1:len_1 for j=1:len_4 A1 = imread(...
  • matlab在一个figure中显示多幅图像

    万次阅读 2018-09-28 11:20:14
    显示2行3列为例: subplot(2,3,1);imshow(“1.jpg”); title('first img','fontname','Times New Roman','Color','k','FontSize',12); hold on;   subplot(2,3,2);imshow(“2.jpg”); title('second img',...
  • matlab 画三维图像

    千次阅读 2018-08-14 11:11:43
    数学学习中,有很地方需要画图来直观对比显示,本节记录一下用matlab画三维图形的几种方法。 例:, 1、surf、surfc、surfl surf:   clear clc close all %% gride [x,y]=meshgrid(0:0.1:3,0:0.1:3); %% ...
  • 如下所示,用一个sin(0.1*t)函数为例,test为自己添加的特征信息,对应到每一个点上,点击中坐标点时能够显示出test的值 并可以添加任意维数的信息,自定义绘图显示的信息。 可以用datacursormode实现 (附...
  • Matlab张图片显示在一个窗口上

    万次阅读 2017-02-09 17:21:55
    load('mnist_uint8.mat');...for i= 1:20 %获取20张图像保存本地 img=reshape(test_x(i,:),[28 28])'; imwrite(img,strcat('D:\3rdlibrary\DeepLearnToolbox-master\data\',num2str(i),'.bmp'));%保存 e
  • Matlab中实现两张图片的叠加显示效果

    万次阅读 多人点赞 2019-07-05 13:25:20
    在matlab中以50%透明度实现两张图片的叠加显示,图片的大小可以任意设置,不同大小的图片,较小的图片整幅中居中显示
  • MATLAB 程序 实现图像拼接,自动匹配特征点 将图片拼接成长MATLAB 程序 实现图像拼接,自动匹配特征点 将图片拼接成长图MATLAB 程序 实现图像拼接,自动匹配特征点 将图片拼接成长
  • MATLAB分窗口显示图像

    千次阅读 2019-09-12 16:54:41
    figure(9),subplot(2,2,1),imshow(my_RGB),subplot(2,2,2),imshow(my_R),subplot(2,2,3),imshow(my_G),subplot(2,2,4),imshow(my_B);...subplot 前两个参数代表几行几列,最后一个参数表示第几个显示 ...
  • 本部分介绍MATLAB的图形窗口和二维图形的绘制: 一.二维绘图: 1.plot绘图命令: plot哈桑农户是最基本最常用的绘图命令,执行plot命令,系统会自动创建一个新的图形窗口, plot函数有以下几种调用格式: 1)...
  • 该例子来源于matlab官网 This is an example of how to display ...有关同一图像窗口显示多幅图片的例子。 Read about the image function in the MATLAB documentation. 请阅读matlab参考文档中中
  • matlab imshow显示图像详解

    万次阅读 2019-03-11 21:31:47
    最近用octave (类似于matlab的计算软件, 函数和matlab一致) 写程序的时候, 在显示图像和保存图像的时候遇到了一些小问题, 所以简单的总结了一下。 本文用的图像为灰度图像: imread() 返回的图像类型是uint...
  • matlab怎么同时显示imshow 两幅图片

    万次阅读 2019-03-06 12:12:53
    分上下或者左右显示两张图片... 例如: 原始图片分两个窗口显示: hehe=uint8(hehe); figure(1) imshow(he), title('原始图像');%显示原始图像 figure(2) imshow(hehe), title('SLIC分割k=...
  • 决策树 id3算法实现多叉树树形图显示,使用matlab编程实现多叉树生成结构体,再对结构体进行处理,生成树形
  • matlab subplot同时显示多幅图像

    万次阅读 2017-10-23 10:52:27
    subplot是MATLAB中的函数。  使用方法:subplot(m,n,p)或者subplot(m n p)。  subplot是将个图画到一个平面上的工具。其中,m表示是排成m行,n表示排成n列,也就是整个figure...在matlab的命令窗口中...
  • Matlab读取和显示图像

    万次阅读 2017-11-22 20:26:09
    Matlab图像读取: f=imread(‘imgName.extend’) imgName——图像名 extend———图像格式后缀名如何查看f对应参数: whos f;图像显示: imshow(f);——–默认灰度级数256 imshow(f,G)——-G为默认灰度级数 ...
  • MATLAB科研绘图-同一个图像显示多个函数
  • MATLAB图像的读取和显示

    千次阅读 2020-07-24 23:37:31
    MATLAB图像的读取和显示 直接看代码吧,注释写的很清楚了。 %图像读取,参数为 路径+文件名,扩展名 %A=imread('G:\chorm浏览器\图片\snow-capped-mountain-under-blue-sky-1775862.jpg','jpg'); A=imread('G:\chorm...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 35,310
精华内容 14,124
关键字:

matlab在显示多图

matlab 订阅