音像转换

2次查看(最近30天)
达灵顿ETAJE
达灵顿ETAJE 2021年9月9日
评论道: 达灵顿ETAJE2021年9月9日
你好,朋友们,我一直在这个代码中得到错误…请帮帮我……
%%音频到图像
infilename =“audio1.wav”
输出文件=“drums.jpg”
fid = fopen (infilename,“r”);
字节= fread(fid, [1 inf],‘* uint8‘);
文件关闭(fid);
numbytes =长度(字节);
f =因素(numbytes);
n = f(结束);
m = numbytes / n;
Img =重塑(bytes, n, m);
imwrite (img,输出文件,“模式”“无损”“bitdepth”12);
imshow(输出文件)
误差是这样的
错误使用matlab.internal.imagesci.wjpg12c
JPEG库错误(12位)“最大支持图像维数金宝app为65500像素”
错误在writejpg中(第127行)
matlab.internal.imagesci.wjpg12c(数据、文件名、道具);
错误在imwrite中(第566行)
函数宏指令(fmt_s。写入,数据,映射,文件名,paramPairs{:});
错误在learningAudio中(第31行)
imwrite (img,输出文件,“模式”“无损”“bitdepth”12);
我真的不知道下一步该做什么

接受的答案

为副总经理
为副总经理 2021年9月9日
n和m是什么?是否大于65500?应该是?
我不知道这样使用factor()是否真的达到了你想要的效果。如果你想把向量重塑成一个正方形的数组,这是不行的。Factor()返回素数因子,与numbytes的平方根相比,这些素数因子可能都非常小。如果你的目标是使图像合理的正方形,这样写/看它更实用,然后考虑像这样:
numbytes = 600;%为例
f = 1:装天花板(numbytes / 2);
f = f (rem (numbytes f) = = 0);
排序(f = [f;numbytes. / f), 1“提升”);%的因素对
:基于“增大化现实”技术= f(1)。/ f (2:);正规化纵横比
[~, idx] = max (ar);找到AR最接近1
imagegeometry = f (:, idx)%这是目标图像的几何形状
imagegeometry = 2×1
24日25日
如果numbytes的特定值不能很好地进行分解以生成一个宽高比合理接近1的图像(即在文件类型的几何约束下最大化可用面积),那么可以考虑填充向量以使其更有利于分解。
其他文件类型的几何限制可能不同。PNG似乎可以写入1E6px宽的图像。TIF至金宝app少支持500E6px,但如果宽高比合理,那么在此之前您可能会遇到文件大小限制。
1评论
达灵顿ETAJE
达灵顿ETAJE 2021年9月9日
由于为副总经理……你给了我解决问题的灵感…我改为png…把最后一行的数字改成了8

登录评论。

更多的答案(0)

社区寻宝

在MATLAB中心找到宝藏,并发现社区如何可以帮助你!

开始狩猎!