Find knee/elbow of a curve

88 views (last 30 days)
pasta pontikaki
pasta pontikaki on 7 Oct 2019
Answered: Image Analyst on 27 Nov 2019
Dear all, i splited my image into sub blocks, i counted the aces of each one and then i stored all them into an array,.
Then i made a histogram, on xx' i have all the values of the aces and on yy' i have the number of "how many time every point is appeared"
image 1 histogram
image 2 histogram
Then i did the cumulative function for all the above points. I try to find the knee/elbow point of this cumulative plot.
I used this code but it didn't wokred well ,then i used this code and i have the below results, which i think are quite good. The red curcle is the knee point
image 1 cumulative func
.
image 2 cumulative func
The result is not good for the first image but works for the second.
Does any one know any other solution to find the knee/elbow of the curve? Any other code to be suggested?
Thank you

Answers (3)

Image Analyst
Image Analyst on 27 Nov 2019
To find a knee/elbow/kink in a curve, I prefer the triangle threshold method. The way this intuitive method works is to draw a hypoteneuse from the far bottom (lowest point) to the top (highest point) of the signal curve, and draw lines perpendicular to that hypoteneuse until they intersect the signal curve.. Where the perpendicular line is longest is the x value to use. I attach the triangle method.
You can also see the FAQ: How can I find "kinks" in a curve?

darova
darova on 7 Oct 2019
What about imdilate()?
clc,clear
I = imread('nett.jpg');
I1 = im2bw(I);
I2 = imdilate(I1,ones(20));
Z = 1.0*cat(3,I1,I2,I1*0);
imshow(Z)
nett1.png nett11.png
Then just use bwlabel or something to get blobs (or regionprops to find centers)
  1 Comment
pasta pontikaki
pasta pontikaki on 7 Oct 2019
Edited: pasta pontikaki on 7 Oct 2019
i have made one solution for this already.
My professor wants me to make another solution with the elbow curve.

Sign in to comment.


Erick Zhou
Erick Zhou on 27 Nov 2019

Community Treasure Hunt

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

Start Hunting!