首页 文章

在Matlab的滑块中同时显示/连接两个图像?

提问于
浏览
0

我不能制作太大的文件(如试过here)所以我需要一次只显示部分 . 但是,我无法在Matlab中将文件从一个文件转移到另一个文件 . 我正在尝试扩展线程的solution在Matlab中刷新imshow?两个图像 . 问题是图像A的结束和图像B的开始 . 现在,我有一个流程中断,我不喜欢,因为我无法在没有中断的情况下同时显示两个图像 .

在此处的示例中,不需要过滤轴 . 码

iterationCounter=1;

hFig=figure('Menubar','none', 'NumberTitle','off', 'Color','k');
while(iterationCounter < 7)

    filenamePng=fullfile(homedir, '/Images/Raw/', iterationCounter, '.png');

    imgRGB=imread(filenamePng);

    % https://stackoverflow.com/a/29952648/54964
    %%// create sliding-window video
    len = 40*2^3;
    signal = imgRGB(:,1:end,:);
    hImg = imshow(signal(:,1:1+len,:), ...
        'InitialMagnification',100, 'Border','tight');

    vid = VideoWriter('signal.avi');
    vid.Quality = 100;
    vid.FrameRate = 60;
    open(vid);

    M = size(signal,2);
    for k=1:M-len
        set(hImg, 'CData',signal(:,k:k+len,:))
        writeVideo(vid, getframe());
    end

    iterationCounter=iterationCounter+1;
end

close(vid);

图像A和图像B的输出

enter image description here

每个图像后滑块中断的地方 . 图片只是两张图片的屏幕截图:滑块的开头和结尾 . 蓝色区域只是OS X GUI,但仍然表明开始和结束之间存在间隙和中断 .


如何在Matlab的滑块中同时显示/连接两个图像?

2 回答

  • 0

    为了在这个滚动窗口中并排显示多个图像,我认为最简单的方法是将所有图像预先加载到一个数组中,然后使用原始代码滚动浏览 .

    hFig=figure('Menubar','none', 'NumberTitle','off', 'Color','k');
    
    signal = [];
    
    % Load all the images into one "long" image
    for k = 1:7
        filename = fullfile(homedir, sprintf('%d.png', k));
        img = imread(filename);
        signal = cat(2, signal, img);
    end
    
    %%// create sliding-window video
    windowWidth = 320; % Width in pixels
    hImg = imshow(signal(:,1:1 + windowWidth,:), ...
        'InitialMagnification',100, 'Border','tight');
    
    vid = VideoWriter('signal.avi');
    vid.Quality = 100;
    vid.FrameRate = 60;
    open(vid);
    
    M = size(signal,2);
    for k = 1:(M - windowWidth)
        set(hImg, 'CData',signal(:,k:k + windowWidth,:))
        writeVideo(vid, getframe());
    end
    
    close(vid);
    
  • 1

    命令 imagesc 是一个低级图像命令,其中Suever的提议不起作用 . 删除填充/边距/背景的一般方法是使用

    <plot imshow imagesc ...>
    set(gca,'position',[0 0 1 1],'units','normalized')
    

相关问题