mirror of
https://github.com/peterbraden/node-opencv.git
synced 2025-12-08 19:45:55 +00:00
HoughCircles added
This commit is contained in:
parent
4860f875c9
commit
23fc1c04ed
@ -68,6 +68,7 @@ Matrix::Init(Handle<Object> target) {
|
||||
NODE_SET_PROTOTYPE_METHOD(ctor, "drawAllContours", DrawAllContours);
|
||||
NODE_SET_PROTOTYPE_METHOD(ctor, "goodFeaturesToTrack", GoodFeaturesToTrack);
|
||||
NODE_SET_PROTOTYPE_METHOD(ctor, "houghLinesP", HoughLinesP);
|
||||
NODE_SET_PROTOTYPE_METHOD(ctor, "houghCircles", HoughCircles);
|
||||
NODE_SET_PROTOTYPE_METHOD(ctor, "inRange", inRange);
|
||||
NODE_SET_PROTOTYPE_METHOD(ctor, "adjustROI", AdjustROI);
|
||||
NODE_SET_PROTOTYPE_METHOD(ctor, "locateROI", LocateROI);
|
||||
@ -1257,6 +1258,41 @@ NAN_METHOD(Matrix::HoughLinesP) {
|
||||
|
||||
}
|
||||
|
||||
NAN_METHOD(Matrix::HoughCircles) {
|
||||
NanScope();
|
||||
|
||||
Matrix *self = ObjectWrap::Unwrap<Matrix>(args.This());
|
||||
|
||||
double dp = args.Length() < 1 ? 1 : args[0]->NumberValue();
|
||||
double minDist = args.Length() < 2 ? 1 : args[1]->NumberValue();
|
||||
double higherThreshold = args.Length() < 3 ? 100 : args[2]->NumberValue();
|
||||
double accumulatorThreshold = args.Length() < 4 ? 100 : args[3]->NumberValue();
|
||||
int minRadius = args.Length() < 5 ? 0 : args[4]->Uint32Value();
|
||||
int maxRadius = args.Length() < 6 ? 0 : args[5]->Uint32Value();
|
||||
std::vector<cv::Vec3f> circles;
|
||||
|
||||
cv::Mat gray;
|
||||
|
||||
|
||||
equalizeHist(self->mat, gray);
|
||||
|
||||
cv::HoughCircles(gray, circles, CV_HOUGH_GRADIENT, dp, minDist, higherThreshold, accumulatorThreshold, minRadius, maxRadius);
|
||||
|
||||
v8::Local<v8::Array> arr = NanNew<Array>(circles.size());
|
||||
|
||||
|
||||
for (unsigned int i=0; i < circles.size(); i++){
|
||||
v8::Local<v8::Array> pt = NanNew<Array>(3);
|
||||
pt->Set(0, NanNew<Number>((double) circles[i][0]));// center x
|
||||
pt->Set(1, NanNew<Number>((double) circles[i][1]));// center y
|
||||
pt->Set(2, NanNew<Number>((double) circles[i][2]));// radius
|
||||
arr->Set(i, pt);
|
||||
}
|
||||
|
||||
NanReturnValue(arr);
|
||||
|
||||
}
|
||||
|
||||
cv::Scalar setColor(Local<Object> objColor) {
|
||||
|
||||
Local<Value> valB = objColor->Get(0);
|
||||
|
||||
@ -74,6 +74,7 @@ class Matrix: public node::ObjectWrap {
|
||||
// Feature Detection
|
||||
JSFUNC(GoodFeaturesToTrack)
|
||||
JSFUNC(HoughLinesP)
|
||||
JSFUNC(HoughCircles)
|
||||
|
||||
JSFUNC(Crop)
|
||||
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user