Generating mex file from Matlab code containing regionprops
조회 수: 2 (최근 30일)
이전 댓글 표시
I'm trying to generate a mex file from Matlab code without much success.
The function I want to compile calls the function regionprops from the Image Processing Toolbox. Since this function is not supported by Matlab Coder, I am declaring it as extrinsic. My problem is declaring the output of regionprops. The output is a vector of structures with a single field of type double and variable size (1D vector always). An example of my code follows:
function outVar = MyFunction( img ) %#codegen
coder.extrinsic( 'regionprops' );
% Some kind of declaration for properties should be added here %
properties = regionprops( img, 'PixelIdxList' );
outVar = 0;
for i = 1:length( properties )
outVar = outVar + properties(i).PixelIdxList( end );
end
The question is, how to declare the variable "properties" and what kind of flags to use during compilation so that a structure with a variable sized field can be compiled.
Any help is greatly appreciated.
Michael.
댓글 수: 2
Ashish Uthama
2012년 6월 12일
could you say more about the full application? Why not write a function which interfaces with regionprops and declare that function extrinsic?
채택된 답변
Ashish Uthama
2012년 6월 13일
Try
function outVar = myapp %#codegen
coder.extrinsic('imread');
coder.extrinsic('regionprops');
idxList = 1;
properties = struct('PixelIdxList',idxList);
coder.varsize('properties',[intmax('int32'),1]);
coder.varsize('properties(:).PixelIdxList',[intmax('int32'),1]);
BW = imread('text.png');
properties = regionprops(BW, 'PixelIdxList');
outVar = 0;
for i = 1:length( properties )
outVar = outVar + properties(i).PixelIdxList( end );
end
end
댓글 수: 0
추가 답변 (0개)
참고 항목
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!