matlab - Matlab 从 .fig 格式的子图中提取图像
问题描述
如何从子图中提取图像。无花果与绘制在其中的图像?请参阅图形的子图,图像格式为 png https://ibb.co/60jx8kX
我尝试使用此代码,但它没有给我所需的输出。
fig = openfig( 'IC_01.fig' , 'new' , 'invisible' );
imgs = findobj(fig, 'type' , 'image' );
thiscmap = get(fig, 'colormap' );
for K = 1 : length(imgs)
thisimg = get(imgs(K), 'CData' );
% now do something with it for illustration purposes
thisfilename = sprintf( 'extracted_image_%03d.jpg' , K);
imwrite(thisimg, thiscmap, thisfilename);
end
谢谢你。
解决方案
这是一种将数据从第一张图像获取到您想要的图像的方法,第一行与您所做的类似:
f=openfig('IC_02.fig')
imgs = findobj(f, 'type' , 'image' );
for n=1:numel(imgs)
C{n}=imgs(n).CData;
X{n}=imgs(n).XData;
Y{n}=imgs(n).YData;
cmap{n}=imgs(n).Parent.Colormap; % not assuming it the same for all axes...
end
现在一些图像将成为您想要的图像的颜色条(通常一个接一个)。然后,我们采用颜色条的 Ydata 来设置您想要的图像的 caxis 限制......对于您的情况,数据位于第四个“图像”对象中,并且限制来自第三个“图像”(颜色条)。 ..
imagesc(X{4},Y{4},C{4})
colormap(cmap{4})
set(gca,'Ydir','normal')
caxis([Y{3}(1) Y{3}(2)])
推荐阅读
- c# - 将接口模拟为多个类型
- php - RabbitMQ 在来自交易所的消息的死信队列上的奇怪行为
- ruby - application.rb 文件上的设置不考虑?
- powershell - Powershell - 编码 UTF-8 在 Export-Csv 中不起作用
- react-native - 在 goBack() 之后不调用 componentWillReceiveProps()
- python - 我的 CodeHS 8.3.7 代码有什么问题:Exlamat!on Po!nts?
- overflow - 限制最大高度尽管文字更长
- android - FirebaseUser 和 GoogleSignInAccount 有什么区别?
- core-data - 我已将 ViewController 嵌入选项卡栏控制器中,现在我的 coreDataStack.managedContext 失败
- php - 从 PHP 中的 shell_exec 调用时未出现 MySQL 表轮廓