How to convert mxarray datatype in simulink

7 次查看(过去 30 天)
I have to remove small objects from binary image and Im trying to use bwareaopen in simulink by using following code:
function y = fcn(u)
x = zeros(size(u));
coder.extrinsic('bwareaopen');
x = bwareaopen(u, 50);
y = double(x);
and getting error:
Class mismatch for variable 'bwareaopen'. Expected 'double', Actual 'logical'. Block MATLAB Function (#24) While executing: none
Model is as follows:
%

采纳的回答

Ryan Livingston
Ryan Livingston 2014-4-2
For allocating logical data use either of the functions true or false:
x = true(size(u));
x = false(size(u));
  5 个评论
Sayed Rizban Hussain
编辑:Sayed Rizban Hussain 2016-5-18
yes bwareaopen is supported in matlab coder as I have used it previously. Now my target machine is raspberry pi. Can you suggest me any function that can replace bwareaopen? As for my application I only need objects of a specific area range.
Walter Roberson
Walter Roberson 2016-5-18
bwlabel and count the number of matches of each label?

请先登录,再进行评论。

更多回答(1 个)

Kaustubha Govind
Kaustubha Govind 2014-3-20
It looks like bwareaopen returns an output of type logical. You need to pre-declare 'x' as follows:
x = zeros(size(u), 'logical');
  1 个评论
Nazim Badar
Nazim Badar 2014-3-22
编辑:Nazim Badar 2014-3-22
Thanks Kaustubha for your response, I tried declaring as you suggested but get following error:
Invalid value 'logical' for the trailing string argument. This argument must be a valid numeric class name: 'double', 'single', 'int8', 'uint8', 'int16', 'uint16', 'int32', or 'uint32'.
Function 'MATLAB Function' (#34.34.58), line 3, column 5:
"zeros(size(u),'logical')"
Launch diagnostic report.
Still not able to declare correctly.

请先登录,再进行评论。

类别

Help CenterFile Exchange 中查找有关 Computer Vision with Simulink 的更多信息

Community Treasure Hunt

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

Start Hunting!

Translated by