opencv의 HoughCircles () 함수 사용
2127 단어 ImageProcessing
직접 선행 코드
Mat Image = imread(img_path);
Size dsize = Size(Image.cols * 0.5, Image.rows * 0.5);
Mat srcImage(dsize, Image.type());
resize(Image, srcImage, srcImage.size());
Mat midImage, dstImage;
cvtColor(srcImage, midImage, COLOR_BGR2GRAY); //
GaussianBlur(midImage, midImage, Size(9, 9), 2, 2);
vector circles;
HoughCircles(midImage, circles, HOUGH_GRADIENT, 1, midImage.rows/5, 150, 100, 0, 0);
for (size_t i = 0; i < circles.size(); i++)
{
Point center(cvRound(circles[i][0]), cvRound(circles[i][1]));
int radius = cvRound(circles[i][2]);
//
circle(srcImage, center, 3, Scalar(0, 255, 0), -1, 8, 0);
//
circle(srcImage, center, radius, Scalar(255, 50, 0), 3, 8, 0);
}
imshow("Output",srcImage);
함수 형식:void HoughCircles(InputArray image, OutputArray circles, int method, double dp, double minDist, double param1 = 100, double param2 = 100, int minRadius = 0, int maxRadius = 0)
매개 변수 설명: InputArray: 이미지를 입력하고 데이터 형식은 일반적으로Mat형으로 하면 됩니다. 8비트 단일 채널 그레이스케일 이미지가 필요합니다.
OutputArray: 감지된 원의 출력 벡터를 저장합니다.
method: 사용한 검출 방법, 현재 opencv는 호프 사다리법 한 가지 방법만 사용할 수 있습니다. 이 매개 변수는 HOUGHGRADIENT 가능(opencv 4.1.0 아래)
dp:double 형식의 dp. 원심의 누적기 이미지의 해상도가 입력 이미지의 비례의 역수를 측정하는 데 사용되며, 이 파라미터는 입력 이미지보다 해상도가 낮은 누적기를 만들 수 있습니다.상술한 글이 이해하기 어려우면 예를 보아라.예를 들어 dp=1일 경우, 누적기와 입력 이미지는 같은 해상도를 가진다.만약 dp=2라면, 누적기는 입력 이미지의 절반만큼 큰 폭과 높이를 가질 수 있다.
minDist: 호프를 위해 감지된 원의 중심 사이의 최소 거리 변환
param1: 이것은 세 번째 매개 변수method가 설정한 검측 방법에 대응하는 매개 변수입니다.현재 유일한 방법인 호프 사다리법 CVHOUGH_GRADIENT, 이것은 캔니 테두리 검출 산자에 전달되는 높은 한도값을 나타내고, 낮은 한도값은 높은 한도값의 절반을 나타낸다.
param2: 세 번째 매개 변수 method에서 설정한 검측 방법에 대응하는 매개 변수로 현재 유일한 방법인 호프 사다리법 HOUGHGRADIENT - 체크 단계의 중심에 대한 누적기 임계값을 나타냅니다.그것이 작을수록 존재하지 않는 원을 더 많이 검출할 수 있고, 크면 클수록 검출할 수 있는 원은 완벽한 원형에 가까워진다.
minRadius: 원 반지름의 최소값을 나타냅니다.
maxRadius: 원 반지름의 최대값을 나타냅니다.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Ruby Processing 을 사용하는 gem 소개 (및 애플리케이션)Processing은 캐서레아스와 벤자민 플라잉이 개발한 오픈소스 프로젝트로, 이전에는 MIT 미디어랩이 개발했다.전자 예술과 시각 디자인에 사용되는 프로그래밍 언어로 종합 개발 환경이다.예술가의 콘텐츠 제작을 위해...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.