dpk*_*dpk 11 android arm libjpeg tensorflow
我DecodeJpeg在训练模型时使用了Tensorflow 来读取图像.为了在Android设备上使用相同的方法,我使用bazel for android编译了Tensorflow DecodeJpeg.
我尝试在桌面上读取相同的图像,这是一x86_64台运行Windows 的机器.我跑了DecodeJpeg与默认值的图像的方法dct_method设置为'',INTEGER_FAST,INTEGER_ACCURATE.
arm64对于相同的图像,我在设备上做了同样的事情.但是,在相同设置下,相同图像的像素值明显不同.
例如,在(100,100,1)桌面上的值是213,而它是204打开的arm64.
更新:
在Gimp上(100,100)的像素值是(179,203,190)
对于dct_method设置为INTEGER_FAST,(100,100)x86_64 (171, 213, 165)上的值是,它是在臂上(180, 204, 191)
对于dct_method设置为INTEGER_ACCURATE,(100,100)x86_64 (170, 212, 164)上的值是,它是在臂上(179, 203, 190)
它是(170, 212, 164)用PIL,这是我用得cv2.imread也.
根据tensorflow图像decode_jpeg文档,
我希望在解码jpeg时它可能与某些属性相关。最有可能的是channels属性和/或ratio属性和/或fancy_upscalingattr。
它们都可以改变像素的值......
关于channels:
attr 通道指示解码图像所需的颜色通道数。
接受的值为:
Run Code Online (Sandbox Code Playgroud)0: Use the number of channels in the JPEG-encoded image. 1: output a grayscale image. 3: output an RGB image.
关于ratio:
attr 比率允许在解码期间将图像缩小整数倍。允许的值为 1、2、4 和 8。这比稍后缩小图像要快得多。
关于fancy_upscaling:
fancy_upscaling:可选布尔值。默认为 True。如果为 true,则使用较慢但更好的色度平面升级(仅限 yuv420/422)。
请注意,您可能还必须显式指定 的值,dct_method因为根据文档,如果您不指定值,它将使用系统特定的默认值。
在我看来,它(dct_method empty arg)是最可能的原因,它解释了为什么在 x86_64 和 ARM 上没有相同的结果。
内部 jpeg 库更改为没有该特定选项的版本
| 归档时间: |
|
| 查看次数: |
347 次 |
| 最近记录: |