Compiled Matlab MEX function "imread()" cannot open .bmp images.

5 ビュー (過去 30 日間)
Leo103
Leo103 2018 年 6 月 22 日
編集済み: Leo103 2018 年 7 月 19 日
Hi,
the Matlab function "Image = imread('File');" works perfectly fine, if you provide a .bmp image. But when compiled to MEX, I get the following error message:
JPEG library error (8 bit), "Not a JPEG file: starts with 0x89 0x50".
Error in imread (line 65)
coder.internal.errorIf(errWarnType == ERROR_MESSAGE_CODE, ...
Studying the generated c-code, the MEX version of 'imread()' seems to only link to the jpeg-library. The MEX version doesn't even accept a second argument like "imread('file', 'bmp')". It would cause a compiler error.
Is the MEX version of imread() even able to open .bmp files? Btw. I'm compiling under Mac environment.

採用された回答

Julianna Mather
Julianna Mather 2018 年 7 月 19 日
The imread function currently only supports JPEG files in code generation. We weren't sure which formats would be most useful for codegen customers, but we were pretty sure that JPEG was at the top of the list. :-)
We will consider adding support for additional file formats to imread in future releases of MATLAB and MATLAB Coder.

その他の回答 (1 件)

Leo103
Leo103 2018 年 7 月 19 日
編集済み: Leo103 2018 年 7 月 19 日
Thank you for the answer! I noticed, the documentation of imread() states at the very end of the page:
C/C++ Code Generation - Generate C and C++ code using MATLAB® Coder™.
Usage notes and limitations:
- Supports reading of 8-bit JPEG images only. The input argument filename must be a valid absolute path or relative path.
- This function generates code that uses a precompiled, platform-specific shared library (Image Processing Toolbox).
- In a MATLAB Function block, the input argument filename must be a compile-time constant.

カテゴリ

Help Center および File ExchangeMATLAB Coder についてさらに検索

製品


リリース

R2018a

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by