[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 |
URL | https://hsp.moe/ |
備考 | #include "OpenCvSharpExtern32.as"
#include "OpenCvSharpExtern64.as" 使用するHSPランタイムのビット数に合わせたインクルードファイルを使用すること |
タイプ | OpenCVSharpラッパーDLL |
グループ | NativeMethods_imgproc |
対応環境 |
|
hs ファイル | hsphelp\OpenCvSharpExtern.hs |