imgproc_HoughCircles

[32/64bit] ハフ変換を使ってグレースケール画像から円を見つけます。

imgproc_HoughCircles p1,p2,p3,p4,p5,p6,p7,p8,p9

p1 = sptr : IntPtr src
p2 = sptr : IntPtr circles
p3 = int : int method
p4 = double : double dp
p5 = double : double minDist
p6 = double : double param1
p7 = double : double param2
p8 = int : int minRadius
p9 = int : int maxRadius

(プラグイン / モジュール : OpenCvSharpExtern.dll)

解説

この関数は,ハフ変換の修正を用いて,グレースケール画像中の円を求めます.例: :#include <opencv2/imgproc.hpp>#include <opencv2/highgui.hpp>#include <math.h>using namespace cv;using namespace std;int main(int argc, char** argv){ Mat img, gray; if( argc != 2 || !(img=imread(argv[1], 1)).data) return -1; cvtColor(img, gray, COLOR_BGR2GRAY); // 滑らかにしないと,たくさんの偽の円が検出される可能性があります. GaussianBlur( gray, gray, Size(9, 9), 2, 2 ); vector<Vec3f> circles; HoughCircles(gray, circles, HOUGH_GRADIENT, 2, gray.rows/4, 200, 100 ); for( size_t i = 0; i < circles.size(); i++ ) { Point center(cvRound(circcles[i][0]), cvRound(circcles[i][1])); int radius = cvRound(circcles[i][2]); // 円の中心を描く circle( img, center, 3, Scalar(0,255,0), -1, 8, 0 );         // 円の輪郭を描く circle( img, center, radius, Scalar(0,0,255), 3, 8, 0 ); } namedWindow( "circles", 1 ); imshow( "circles", img ); waitKey(0); return 0;}fragmentNote通常、この関数は円の中心をうまく検出します。しかし、正しい半径を見つけることができない場合があります。半径の範囲(minRadiusとmaxRadius)がわかっていれば、それを指定することで、この関数を補助することができます。また、HOUGH_GRADIENTメソッドの場合、maxRadiusを負の数に設定することで、半径検索を行わずに中心のみを返し、追加の手順で正しい半径を見つけることができます。また、画像がすでに柔らかい場合を除き、画像を少し滑らかにすることもできます。他にもfitEllipse, minEnclosingCircleExamples: samples/cpp/tutorial_code/ImgTrans/houghcircles.cppを参照してください。

元関数名(C#): imgproc_HoughCircles
元DLLエクスポート名: imgproc_HoughCircles
参照元CSファイル: Internal\PInvoke\NativeMethods\imgproc\NativeMethods_imgproc.cs
▼ C言語側関数定義
CVAPI(ExceptionStatus) imgproc_HoughCircles(cv::_InputArray *src, std::vector<cv::Vec3f> *circles,
                                 int method, double dp, double minDist,
                                 double param1, double param2, int minRadius, int maxRadius)
{
    BEGIN_WRAP
    cv::HoughCircles(*src, *circles, method, dp, minDist, param1, param2, minRadius, maxRadius);
    END_WRAP
}

情報

プラグイン / モジュールOpenCvSharpExtern.dll
バージョン1.00
作成日2021/11/30
著作者inovia
URLhttps://hsp.moe/
備考#include "OpenCvSharpExtern32.as"
#include "OpenCvSharpExtern64.as"
使用するHSPランタイムのビット数に合わせたインクルードファイルを使用すること
タイプOpenCVSharpラッパーDLL
グループNativeMethods_imgproc
対応環境
  • Windows 版 HSP
hs ファイルhsphelp\OpenCvSharpExtern.hs