Too many Input Arguments Error

clear all; close all; clc;
img = imread("Morfoloji2.PNG");
gray=rgb2gray(img);
bin=imbinarize(gray);
binm=imcomplement(bin);
binf=imfill(binm,'holes');
[centers, radii, metric]=imfindcircles(binf,[6,50],'Sensitivity',0.60);
bint=imerode(binf,strel('disk',1));
imshow(bint);
[labeledImage, numberOfObjcts]=bwlabel(bint);
B=regionprops(labeledImage,'Perimeter','Area');
circu=[B.Perimeter.^2] ./(4*pi*[B.Area]);
% cats=cat(1,B.Centroid);
viscircles(centers, B.Area,'EdgeColor','b');
-------------------------------------------------------------------------------------------------------------------------------------------
My error is:
Error using .^
Too many input arguments.
Error in dsgsdgs (line 12)
circu=[B.Perimeter.^2] ./(4*pi*[B.Area]);
>>

2 Comments

What does it return if you call
disp(B.Perimeter)
before the error message?
I got this error:
Error using disp
Too many input arguments.
Error in Morfoloji2 (line 12)
disp(B.Perimeter);
We are working together.

Sign in to comment.

Answers (2)

Jan
Jan on 23 Apr 2021
Edited: Jan on 23 Apr 2021
This means, that your B.Perimeter is not a scalar. Do you mean:
% Was: circu=[B.Perimeter.^2] ./(4*pi*[B.Area]);
circu=[B.Perimeter].^2 ./(4*pi*[B.Area]);
You have done the same at [B.Area] : If you include multiple values in the square brackets, they are concatenated to a vector.

2 Comments

Thank you for answer. Its worked 👍
-> This means, that your structure B is not a scalar.

Sign in to comment.

circu=[B.Perimeter].^2 ./(4*pi*[B.Area]);

Categories

Tags

Asked:

on 23 Apr 2021

Commented:

on 23 Apr 2021

Community Treasure Hunt

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

Start Hunting!