"Non-constant or empty expression" error when generating code using imfilter

I'm trying to generate code from a function that uses imfilter like this:
function [output] = some_function(A)
%A is image data read in with imread
conv_kern = 15;
H = fspecial('disk', conv_kern);
A_filtered = imfilter(A, H, 'replicate');
...
When the function runs through Coder it generates this error:
??? Non-constant expression or empty matrix. This expression must be constant because its value determines the size or class of some expression.
Error in ==> padarray Line: 213 Column: 34
The Coder settings have A defined as a specific size and data type, and I thought the other arguments (H and 'replicate') would be considered constant, so I'm confused where the error is coming from.

2 件のコメント

Ryan Livingston
Ryan Livingston 2014 年 8 月 9 日
編集済み: Ryan Livingston 2014 年 8 月 9 日
Hi Christopher,
I tried this snippet in the pre-release and couldn't see the error either. Is it possible that some of the code after the posted snippet is having an effect?
Could you please run:
coder -tocode < name >.prj -script build_imfilter.m
where < name > is the name of your project and post build_imfilter.m? That will help us reproduce more easily.
Vignesh
Vignesh 2014 年 8 月 11 日
If you are still having trouble, consider contacting MathWorks technical support http://www.mathworks.com/support/contact_us/

サインインしてコメントする。

回答 (2 件)

Anand
Anand 2014 年 8 月 6 日

0 投票

Could you say which release and platform you are working with? I'm not able to see this.

1 件のコメント

Christopher McNally
Christopher McNally 2014 年 8 月 6 日
I'm running the 2014b pre-release candidate on Linux.

サインインしてコメントする。

Image Analyst
Image Analyst 2014 年 8 月 11 日

0 投票

Perhaps try conv2() instead of imfilter().

カテゴリ

ヘルプ センター および File ExchangeMATLAB Coder についてさらに検索

質問済み:

2014 年 8 月 6 日

回答済み:

2014 年 8 月 11 日

Community Treasure Hunt

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

Start Hunting!

Translated by