An idea to detect the sharpness in the image boundary

The yellow line in the following image is the boundary of the cell. I nee to detect sharpness in the boundary. Is there any way to do so?
Capture

The red lines in the bottom image shows the sharp edges. There are more sharp edges on the image boundary and I crossed some as an example.
I am also interested to find the extent and degree of sharpness. Fro example some of them are sharp but not much protruded (like the white one) and some of them are less sharp but more protruded (like the blue one)

Capture22

Hi @Zeynab_Mousavi.

I would be cautious about measuring small changes in the edge as at this resolution it may say more about your noise parameters and thresholding than it does about the “sharpness” of the cell itself.

Regardless, one idea might be to calculate the Menger Curvature around your boundary which would indicate the local change in the surface curvature.

It is fairly easy to pull the coordinates of your boundary, then calculate the curvature between sets of adjacent (or further spaced out) triplets.

There is some IJM code at the link below that indicates how to calculate curvature (among other things) from three sets of coordinates:
https://bitbucket.org/davemason/threepointcircumcircle

Hope that helps!

1 Like

Maybe you should have a look at “elliptic Fourier analysis”:
https://imagejdocu.tudor.lu/plugin/analysis/fourier_shape_analysis/start
Curvature scale space (I mentioned this in another post today):

2 Likes

And here is a book chapter about Fourier Shape Analysis @gabriel suggested :

3 Likes

Hi, I think, there are two type of method:
1: vector based: treat the boundary as an 1d vecter signal.
for example: you can use rolling line to get the different signal, then find the local max point:

2: If you want to treat it with image method, You can use a DOG filter, then find local max point with a tolerance:

May be the sharpeness point is in different scale, So the two sigma can find point in differnt scale. If you want to find the big scale sharpeness, you can use two big sigma:

Now you can use find local max/min point to detect the out/in sharpeness.

detect sharpeness in big / small scale:

2 Likes

@yxdragon Can you please explain more about method 1?