[S.Area] not supported for code generation
조회 수: 2 (최근 30일)
이전 댓글 표시
hey guides i use this function on the simulink but show the error:Referencing a component from array of non-scalar values is not supported for code generation.
Function 'MATLAB Function' (#35.204.212), line 8, column 25:
"[S.Area]"
Launch diagnostic report.
what can replace this to success simulation on simulink.
function y = areaimg(u)
bw2 = zeros(240,320);
ss = 20;
B = 6000;
img_bw2 = bwareaopen(u,ss,8);
[L2,num2]=bwlabel(img_bw2,8);
S = regionprops(L2,'Area');
bw2 = ismember(L2, find([S.Area] < B));
y = bw2;
end
댓글 수: 0
채택된 답변
Walter Roberson
2017년 10월 26일
편집: Walter Roberson
2017년 10월 26일
Just loop. You are generating code anyhow, so the loop should be efficient.
Have you considered using bwareafilt() instead ?
댓글 수: 6
Walter Roberson
2017년 10월 27일
false() and zeros() are not the same: false() creates an array of type logical and zeros() creates an array of type double.
추가 답변 (2개)
Image Analyst
2017년 10월 27일
What is num2? Is it 0, and therefore S is empty? If S is empty, then trying to access S.Area would throw an error.
댓글 수: 0
Image Analyst
2017년 10월 27일
The whole function can be done with this single line of code
y = bwareafilt(u, [1, 6000]);
참고 항목
카테고리
Help Center 및 File Exchange에서 Computer Vision with Simulink에 대해 자세히 알아보기
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!