Warning相关

  • 用imshow保存图像时,常常会弹出 Image is too big to fit on screen; displaying at 50% 的警告,这是图像大小超过imshow函数的设置的窗口大小了,如果只是想去除warning,则直接运行以下代码即可

    warningState = warning('off','Images:initSize:adjustingMag');
    figure
    imshow(img)
    warning(warningState);
    

    先关闭警告,看完图片后再还原警告的设置。

观看原图相关

  • 可以通过imtool函数查看图像,比如若I是图像的矩阵,则直接运行以下代码即可

    I = imread('test.tif');
    imtool(I)
    

    显示的窗口上面可以设置图像查看的比例

  • 也可以通过添加新建一个带滚动条的窗口,显示图像,具体的代码如下:

    fbor = imread('test.tif');
    hFig = figure( 'Toolbar' , 'none'  );
    hIm = imshow( fbor );
    hSP = imscrollpanel(hFig , hIm);
    

    保存图像相关

    • 在上面的添加滚动条显示图像时,如果直接用saveas或者print等保存图像,则只会保存当前窗口显示出来的图像部分,即滚动条所在位置的图像,需要通过以下方式获取图像

      I = getimage(gcf);
      imwrite(I,'outImg.bmp');
      

      得到的I是完整的图像。

    • 如果要在图像上添加文字,则无法在imtool产生的图像上添加文字,只能使用上面说的添加滚动条的方式显示图像,然后用以下代码添加文字:

      text(100,100,'demoForLargeFigure','color','white','edgecolor','red');
      
    • 如果要保存添加了文字的图像,又不改变图像的大小,则需要用insertText函数
      ,如下

      I = double(I); %转成实数型,若原来I是logical型,会报错
      rgb = insertText(I , [100 , 100 ] ,'demoForLargeFigure',...
                                         'FontSize' , 18 ,...
                                         'TextColor' , 'red' ,...
                                         'BoxColor' , 'white' ,...
                                         'BoxOpacity' , 1);
      

      这种方式将灰度图转成了rgb图。

    • 保存图像的时候直接imwrite即可

    下面是一些示例代码,演示了形态学的重构

    clc,clear,close all
    f = imread('Fig0922(a)(book-text).tif');
    fe = imopen(f , ones(51,1));
    fobr = imreconstruct( fe , f );
    % 以下隐藏了菜单若要显示菜单可以运行set(hFig,'MenuBar','figure')
    hFig = figure( 'Toolbar' , 'none'  );
    hIm = imshow( fobr );
    hSP = imscrollpanel(hFig , hIm);
    I = getimage(gcf);
    imwrite(I,'outImg.bmp');
    % 如果直接用以下的代码,只能得到当前显示出来的图像,而且还有滚动条
    % saveas(gcf , 'outImg.bmp')
    %添加文字
    I = double(I);
    rgb = insertText(I , [100 , 100 ] ,'demoForLargeFigure',...
                                       'FontSize' , 18 ,...
                                       'TextColor' , 'red' ,...
                                       'BoxColor' , 'white' ,...
                                       'BoxOpacity' , 1);
    imwrite(rgb , 'insertText.jpg');
    % 如果用以下的代码,保存图像时会丢失text数据,利用saveas时则不能保存原图
    % t = text(100,100,'demoForLargeFigure','color','white','edgecolor','red');
    

    处理过程中的相关图像如下

    一些有用的链接

    http://stackoverflow.com/questions/8586294/matlab-image-too-big-to-fit-on-screen

    http://www.mathworks.com/matlabcentral/answers/101413-how-can-i-add-text-to-an-image-and-make-the-text-become-part-of-the-image-within-matlab

    C++: void Mat::copyTo(OutputArray m) const C++: void Mat::copyTo(OutputArray m, InputArray mask) const 这个函数可以复制图像到另一个图像或矩阵上,可选参数是掩码 由于叠加的图像大小不一定相等,比如我们这里把一张小照片加到一张大照片上 我们可以在大照片上设置一个和小照片一样大的感兴趣区域 我出现的问题是 “NAT模式”:虚拟机可以上外网,但是物理主机不能ssh连接虚拟机,物理主机也无法ping通虚拟机。 网上未找到准确解决办法,困扰很久,其实只要一个小设置就能解决,分享给遇到问题的小伙伴。 问题如下: 虚拟机为NAT模式: 最近有用户向我反映难以解决问题,根据小编的调查并不是所有的朋友都知道win10系统Matlab7出现Runtime error提示的问题怎么解决,因此我就在电脑上汇集整顿出win10系统Matlab7出现Runtime error提示的少许解决办法,你只需要按照 右击MATLAB图标——选择“属性”——选择“兼容性”——在“运行兼容模式”前面打钩,在下拉菜单选择Windows Vista。的步骤... Figure窗口的图形导出成jpg格式的图片时,所有的字号都会变大,而且坐标刻度值在有些情况下会改变。我想得到与屏幕上显示完全相同的jpg图形,但又不想用尺寸比较大的bmp. 另:用print生成24位色的bmp时字体也会变大,用saveas生成的bmp不会变大,但只能保存成256色,会丢失颜色。 下面详细说明一下我的要求与解决方法。 ... 在做图像拼接过程,由于图像在拼接完后很大,matlab通常会显示Image is too big to fit on screen; displaying at 33% ,那么你想看图像拼接后的原图细节怎么办呢? 解决方法如下:                               将图像显示的imshow(imge0)改成imtool(uint8(img0));在出来的界面可以调节 该楼层疑似违规已被系统折叠隐藏此楼查看此楼% close all;clear all; clcfid = fopen('SMARTLINK 1H', 'rt');rows = 10;2^19;Num1057_Counter=0;Num1058_Counter=0;Mes_LenBin=zeros(1,10);%分配空间Data_Feild=zeros(1,12);%分配空间CRC_base=[1... 今天用simulink搭了一个仿真图,但在最后保存的时候总是提示 the model contains the characters that cannot be encoded with the model’s character encoding,‘GBK‘…上网查了下,大神们说要么是我的模块里有文注释,要么是路径当文,可是我的路径全是英文的,也没有半个字的注释。所以原因就不在此了。后 这里是几个Matlab的小提示,基本上是我使用Matlab时碰到并解决了的问题,希望能使别人不要再碰钉子走弯路了。如果有建议或发现其有错误,请与我联系。循环变量由于历史的原因,程序员们总是使用i,j,…为循环变量命名,但是在Matlab这种习惯可能会导致一些很隐蔽的问题。因为i,j同时也是Matlab的虚数单位,如果你给i赋值,就会覆盖掉原来虚数单位的定义,例如:4+i*3ans =4.00...  在做gui界面的时候遇到一个这样的问题:我fig里有2个axes,一个用于显示原始图像,一个用来显示每个步骤处理结果。想通过一个菜单或者按键来实现保存处理结果的功能,也就是说只要用户点击保存的时候。系统会读取axes2里的图像数据,然后写成文件。因为保存路径和文件名可供用户选择,所以很自然想到uiputfile和saveas(看过很多人写的程序都是这样的)。由于保存程序和处理程序不在一个