- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我转储了一些视频帧,并希望从中生成一个长方体,如下面的示例图像所示:
我想知道是否存在 MATLAB 函数来绘制这样的图?
最佳答案
不清楚您的视频帧以什么格式开始,所以我假设它们作为电影帧的结构数组加载到 MATLAB 中(如 here 所述)。我将创建一些样本电影数据(单个图像重复 200 次),首先向您展示如何将第一帧加载到图像中,以及如何从所有帧的顶部和侧边创建图像(使用作为长方体的顶面和侧面):
M = repmat(im2frame(imread('peppers.png')),1,200); %# Sample movie data
nFrames = numel(M); %# The number of frames
face1 = frame2im(M(1)); %# Get the image for the front face
[R,C,D] = size(face1); %# Get the dimensions of the image
face2 = zeros(R,nFrames,3,'uint8'); %# Initialize the image for the side face
face3 = zeros(nFrames,C,3,'uint8'); %# Initialize the image for the top face
for k = 1:nFrames %# Loop over the frames
img = frame2im(M(k)); %# Get the image for the current frame
face2(:,k,:) = img(:,end,:); %# Copy the side edge to the side face image
face3(k,:,:) = img(1,:,:); %# Copy the top edge to the top face image
end
上面的代码假设电影帧是RGB images而不是 indexed images .如果它们是索引图像,您将必须从函数 FRAME2IM 中获取额外的颜色映射参数。然后使用函数 IND2RGB 将图像转换为 RGB 图像.
接下来,您可以使用 SURF 将立方体的每一面绘制为纹理贴图表面功能:
offset = nFrames/sqrt(2); %# The offset in pixels between the back
%# corners and front corners of the
%# displayed cuboid
surf([0 C; 0 C],... %# Plot the front face
[R R; 0 0],...
[0 0; 0 0],...
'FaceColor','texturemap',...
'CData',face1);
hold on; %# Add to the existing plot
surf([C C+offset; C C+offset],... %# Plot the side face
[R R+offset; 0 offset],...
[0 0; 0 0],...
'FaceColor','texturemap',...
'CData',face2);
surf([0 C; offset C+offset],... %# Plot the top face
[R R; R+offset R+offset],...
[0 0; 0 0],...
'FaceColor','texturemap',...
'CData',face3);
axis equal %# Make the scale on the x and y axes equal
view(2); %# Change the camera view
axis off %# Turn off display of the axes
set(gcf,'Color','w'... %# Scale the figure up
'Position',[50 50 C+offset+20 R+offset+20]);
set(gca,'Units','pixels',... %# Scale the axes up
'Position',[10 10 C+offset R+offset]);
这是结果图:
关于matlab - 我怎样才能在 MATLAB 中重现这个长方体图?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3627679/
我正在尝试在 python 中给定边界内的 3D 长方体空间中生成 2000 个随机点。人们会怎样做呢? 最佳答案 import random xrange = (-1000.0, 1000.0) y
我正在尝试在 python 中给定边界内的 3D 长方体空间中生成 2000 个随机点。人们会怎样做呢? 最佳答案 import random xrange = (-1000.0, 1000.0) y
我对 HTML、CSS 有基本的了解。我想像这样用这 3 个 3D 长方体创建一个 HTML 页面 上图中的 3D 长方体对我来说看起来很复杂。那么有人可以建议如何使用 HTML 和 CSS 创建这个
我是一名优秀的程序员,十分优秀!