Cannot detect dots in calibration image with detectCircleGridPoints

조회 수: 8 (최근 30일)
Hi all,
I'm trying to calibrate my camera based on a dotted pattern on a board. I see I can use the detectCircleGridPoints algorithm, but cannot get it to detect any of the points and get imagePoints = []. Below my code.
What am I doing wrong?
Best,
clc; clear all; close all;
fileName = 'dotted_cali_fig.tiff'; %to attach the file I had to put it in .png
img = imread(fileName);
patternDims = [7 35];
imagePoints = detectCircleGridPoints(img,patternDims,PatternType="symmetric")

채택된 답변

Antoni Garcia-Herreros
Antoni Garcia-Herreros 2023년 4월 26일
Hello Jos,
I'm not sure why detectCirlceGridPoints is not working, however, you could try using regionprops:
BW=imbinarize(img);
r=regionprops('table',imcomplement(BW),'Centroid','Circularity','Area');
R=table2array(r);
R=R(R(:,1)>5,:); % Filter by Area > 5 pixels
ListPoints=R(R(:,4)>prctile(R(:,4),5),:); % Filter by circularity
Hope this helps
  댓글 수: 1
Jos Muller
Jos Muller 2023년 5월 8일
Thanks Antoni,
It works for most of the points in my example figure. Some more conservative 'area' threshold works beter. The circularity filter is a nice suggestion, allthough in my example I lose to much points. I can continue to work from this, thanks!
Best,
Jos

댓글을 달려면 로그인하십시오.

추가 답변 (0개)

카테고리

Help CenterFile Exchange에서 MATLAB Support Package for USB Webcams에 대해 자세히 알아보기

Community Treasure Hunt

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

Start Hunting!

Translated by