我在 Matlab 中编写了一个图像过滤器,我想将它翻译成 java 以便使用我的 android 应用程序。如何将 short 或 int 转换为 uint8 数据格式。
顺便说一句:我知道 java 中没有像 uint8 这样的类型。
任何帮助将不胜感激。
MATLAB:
for iX = 1:imageX
for iY = 1:imageY
x(1:3) = input(iX,iY,:);
output(iX, iY, :) = uint8(p1.*x.^5 + p2.*x.^4 + p3.*x.^3 + p4.*x.^2 + p5.*x + p6);
end
end
爪哇:
for (int iX = 0; iX < width; iX++) {
for (int iY = 0; iY < height; iY++) {
Arrays.fill(x, bitmap.getPixel(iX, iY));
short total = 0;
for (int i = 0; i < 3; i++) {
total +=p1[i] * Math.pow(x[i], 5) + p2[i]
* Math.pow(x[i], 4) + p3[i] * Math.pow(x[i], 3)
+ p4[i] * Math.pow(x[i], 2) + p5[i] * x[i] + p6[i];
}
output.setPixel(iX, iY, total);
}
}