我怎么能“Java映像”对象转换成一个MATLAB图像矩阵?

54视图(30天)
IM2JAVA函数用于MATLAB图像转换为Java的形象。我想Java图像转换为MATLAB图像。

接受的答案

MathWorks支万博1manbetx持团队
没有内置函数将Java图像转化为MATLAB图像。但是使用Java API可以提取数据从Java图像并将其存储为一个矩阵,MATLAB的图像表示。
下面是一个例子,将MATLAB图像转换成Java和MATLAB的图像。在本例中使用的图像是MATLAB演示的一部分,在MATLAB的道路。在这个例子中,“获取像素”功能的Java类“光栅”返回图像的RGB值。
根据您的Java的格式图片,可能需要额外的工作。Java图像可以存储在一个许多格式;“获取像素”函数返回的像素数据格式。有关更多信息,请参见javadoc java.awt.image页面。光栅上
< http://java.sun.com/j2se/1.5.0/docs/api/java/awt/image/Raster.html >
%创建java映像
我= imread (“office_3.jpg”);
javaImage = im2java(我);
%获取图像属性
H = javaImage.getHeight;
W = javaImage.getWidth;
%重新包装作为一个三维数组(MATLAB图像格式)
B = uint8 (0 ([H, W, 3]));
pixelsData = uint8 (javaImage.getBufferedImage.getData.getPixels (0, 0, W, H, []));
i = 1: H
基础=(张)* W * 3 + 1;
B(我,1:W:) =交易(重塑(pixelsData(基地:(基础+ 3 * w1)), 3 W) ');
结束
%显示图象
imshow (B);
以下是另外两个方法来实现这个(以更优化的方式):
示例1:(更快的执行)
pixelsData =重塑(定型(jImage.getData.getDataStorage“uint8”)、4 w h);
imgData =猫(3
置(重塑(pixelsData (3::), w h)),
置(重塑(pixelsData (2::), w h)),
置(重塑(pixelsData (1::), w h)));
示例2:
imgData = 0 (H, W, 3,“uint8”);
pixelsData =重塑(定型(javaImage.getBufferedImage.getData.getDataStorage“uint32”)、W H)。”;
imgData (:: 3) = bitshift (bitand (pixelsData 256 ^ 1 - 1), 8 * 0);
imgData (:: 2) = bitshift (bitand (pixelsData 256 ^ 2 - 1), 8 * 1);
imgData (:: 1) = bitshift (bitand (pixelsData 256 ^ 3 - 1), 8 * 2);
2的评论
Sarang Kunte
Sarang Kunte 2016年7月13日
嗨Rajnikant,
我建议联系Mathworks技术支持如果你面临的问题在使用上述脚本Java图像对象转换为MAT万博1manbetxLAB图像矩阵。

登录置评。

更多的答案(0)

类别

找到更多的在图像类型转换帮助中心文件交换

s manbetx 845

社区寻宝

找到宝藏在MATLAB中央,发现社区如何帮助你!

开始狩猎!