I have tried below code on an image containing a cross in it, it detects the center location of the cross.
Please refer below for the code:
- Convert image to grayscale image and then binarization
img = imread('test.jpg');
I = rgb2gray(img);
BW = imbinarize(I,0.25);
2. As the result may have missing parts dilate the image to join the parts
se = strel('line',11,90);
BW2 = imdilate(BW,se);
3. Use morphological ‘shrink’ operation to shrink image to a point
BW3 = bwmorph(BW2,'shrink',Inf);
4. Find the position of the point
Hope this helps.