image - 如何在matlab中使用im2single而不是im2uint制作彩色视频
问题描述
下面的代码600x600x28
使用 im2unit8 从矩阵制作视频,但在一些像下图这样的帧中,颜色分布与原始的不同。这是由于使用im2uint8
.
我试图用它im2single
来解决这个问题,但由于它映射了 0 和 1 之间的矩阵,所以视频帧都是黑色的。我想知道有什么方法可以制作具有 im2single
功能的彩色视频。
Orig = randi([1 1000],600,600,28);
x = im2uint8(mat2gray(Orig));
% x = im2single(mat2gray(Orig));
map = jet(256); % Use colormap with 256 colors (the default is 64).
x_all = zeros(size(x, 1), size(x, 2), 3, size(x, 3), 'uint8'); % Allocate space
for i=1:size(x,3)
x_all(:,:,:,i) = im2uint8(ind2rgb(x(:,:,i), map));
end
v = VideoWriter('1_3.avi');
v.FrameRate = 1;
open(v);
writeVideo(v,x_all);
close(v)
解决方案
推荐阅读
- android - 对于 Xamarin.Forms 本地化,是否需要实现 ILocalize?
- java - Is there a language that supports implicit composite types at variable declaration?
- excel - Can I recycle a webscraping Excel VBA script for other sites?
- c# - How to make C# console application to always be in front?
- string - Checking empty string in kotlin doesn't work
- javascript - 电子构建的 exe 应用程序 - 生成文件(解压 - 好的 / 便携 - 没有) - 为什么?
- architecture - 如果 MIPS 架构有 64 个寄存器而不是 34 个寄存器
- html - 我怎么能做一个充满屏幕的导航栏?
- android - BillingFlowParams.Builder setSkuDetails 用于测试静态 Google Play 计费响应
- python - Anaconda python kernel can not be interrupted. Reinstalling can not work