Léo*_* 준영 1 matlab matlab-figure polar-coordinates
从origo(0,0)到(1,0)的行产生间隙的代码,如果C尺寸达到无穷大,它似乎达到零; 但是,我不能用任何尺寸的小尺寸得到它,C所以我认为工件可能是由Matlab图形内部特征或图像数据本身(AnderBiguri)引起的,因为它似乎不会发生img=imread('peppers.png').制作图像的代码,存储它export_fig并将其从笛卡尔映射到工件发生的极地
close all; clear all; clc;
%% Make image
f1=figure;
hax=axes(f1);
x = rand(1,6);
y = exp(rand(1,181));
C = rand(3613,3613);
imagesc(hax, x, y, C);
box(hax, 'off');
axis(hax, 'off');
set(hax, 'yTickLabel', []);
set(hax, 'xTickLabel', []); % for polar presentation
set(hax, 'Ticklength', [0 0]); % http://stackoverflow.com/a/15529630/54964
filename='/home/masi/Images/testi';
% by default, export_fig has cropping
[img, alpha] = export_fig(filename, '-png', '-native', '-q101', '-a1', '-m1', '-RGB', '-nofontswap', '-dpng', hax);
close all;
%% Read Image
img=imread('/home/masi/Images/testi.png');
% http://stackoverflow.com/a/7586650/54964
[h,w,~] = size(img);
s = min(h,w)/2; % have here .../1, some phenomenon occurs
[rho,theta] = meshgrid(linspace(0,s-1,s), linspace(0,2*pi,s));
[x,y] = pol2cart(theta, rho);
z = zeros(size(x));
subplot(121), imshow(img)
subplot(122), warp(x, y, z, img)
view(2), axis square tight off
Run Code Online (Sandbox Code Playgroud)
图1输出时size(C)=[3613 3613],图2输出时size(C)=[36130 36130]
Matlab:2016a
Export_fig:08/08/16版
OS:Debian 8.5 64位
Linux内核:4.6
后退硬件:华硕Zenbook UX303UA
我快速看了一眼,是的,发生了一些奇怪的事情.问题是你的图像周围有一个边框,边框在绘制时似乎没有image,因为它与背景颜色相同!
如果您使用创建图像
C = rand(100,100);
Run Code Online (Sandbox Code Playgroud)
然后在加载之后绘制它imagesc而不是imshow你可以看到:
这就是它被转化为极地情节中失踪的乐队.如果您只删除大小为1的图像周围的边框,您将获得完整的图.
我最好的猜测是export_fig你的声明中的某个地方% by default, export_fig has cropping是假的,或者裁剪有一些小错误,并从背景中获取1个像素.