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 Kommentare

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

Melden Sie sich an, um zu kommentieren.

Antworten (2)

Jan
Jan am 23 Apr. 2021
Bearbeitet: Jan am 23 Apr. 2021

2 Stimmen

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 Kommentare

Onur Demir
Onur Demir am 23 Apr. 2021
Thank you for answer. Its worked 👍
Stephen23
Stephen23 am 23 Apr. 2021
-> This means, that your structure B is not a scalar.

Melden Sie sich an, um zu kommentieren.

Walter Roberson
Walter Roberson am 23 Apr. 2021

1 Stimme

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

Kategorien

Mehr zu Performance and Memory finden Sie in Hilfe-Center und File Exchange

Tags

Gefragt:

am 23 Apr. 2021

Kommentiert:

am 23 Apr. 2021

Community Treasure Hunt

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

Start Hunting!

Translated by