1
+ #ifdef HAVE_XIMGPROC
2
+
3
+ #include " SuperpixelSLIC.h"
4
+
5
+ Nan::Persistent<v8::FunctionTemplate> SuperpixelSLIC::constructor;
6
+
7
+ NAN_MODULE_INIT (SuperpixelSLIC::Init) {
8
+ v8::Local<v8::FunctionTemplate> ctor = Nan::New<v8::FunctionTemplate>(SuperpixelSLIC::New);
9
+ v8::Local<v8::ObjectTemplate> instanceTemplate = ctor->InstanceTemplate ();
10
+ constructor.Reset (ctor);
11
+ instanceTemplate->SetInternalFieldCount (1 );
12
+ ctor->SetClassName (Nan::New (" SuperpixelSLIC" ).ToLocalChecked ());
13
+
14
+ Nan::SetAccessor (instanceTemplate, Nan::New (" img" ).ToLocalChecked (), SuperpixelSLIC::GetImg);
15
+ Nan::SetAccessor (instanceTemplate, Nan::New (" labels" ).ToLocalChecked (), SuperpixelSLIC::GetLabels);
16
+ Nan::SetAccessor (instanceTemplate, Nan::New (" labelContourMask" ).ToLocalChecked (), SuperpixelSLIC::GetLabelContourMask);
17
+ Nan::SetAccessor (instanceTemplate, Nan::New (" algorithm" ).ToLocalChecked (), SuperpixelSLIC::GetAlgorithm);
18
+ Nan::SetAccessor (instanceTemplate, Nan::New (" regionSize" ).ToLocalChecked (), SuperpixelSLIC::GetRegionSize);
19
+ Nan::SetAccessor (instanceTemplate, Nan::New (" ruler" ).ToLocalChecked (), SuperpixelSLIC::GetRuler);
20
+ Nan::SetAccessor (instanceTemplate, Nan::New (" numCalculatedSuperpixels" ).ToLocalChecked (), SuperpixelSLIC::GetNumCalculatedSuperpixels);
21
+
22
+ Nan::SetPrototypeMethod (ctor, " iterate" , SuperpixelSLIC::Iterate);
23
+
24
+ target->Set (Nan::New (" SuperpixelSLIC" ).ToLocalChecked (), ctor->GetFunction ());
25
+ };
26
+
27
+ NAN_METHOD (SuperpixelSLIC::New) {
28
+ FF_METHOD_CONTEXT (" SuperpixelSLIC::New" );
29
+ if (!info.IsConstructCall ()) {
30
+ FF_THROW (" expected new key word" );
31
+ }
32
+ SuperpixelSLIC* self = new SuperpixelSLIC ();
33
+
34
+ FF_ARG_INSTANCE (0 , self->img , Mat::constructor, FF_UNWRAP_MAT_AND_GET);
35
+ FF_ARG_INT (1 , self->algorithm );
36
+ FF_ARG_INT_IFDEF (2 , self->regionSize , 10 );
37
+ FF_ARG_INT_IFDEF (3 , self->ruler , 10.0 );
38
+
39
+ self->Wrap (info.Holder ());
40
+ self->superpixelSlic = cv::ximgproc::createSuperpixelSLIC (
41
+ self->img ,
42
+ self->algorithm ,
43
+ self->regionSize ,
44
+ self->ruler
45
+ );
46
+ info.GetReturnValue ().Set (info.Holder ());
47
+ }
48
+
49
+ NAN_METHOD (SuperpixelSLIC::Iterate) {
50
+ FF_METHOD_CONTEXT (" SuperpixelSLIC::Iterate" );
51
+
52
+ FF_ARG_UINT_IFDEF (0 , uint iterations, 10 );
53
+
54
+ SuperpixelSLIC* self = FF_UNWRAP (info.This (), SuperpixelSLIC);
55
+ self->superpixelSlic ->iterate((int )iterations);
56
+ self->superpixelSlic ->getLabels (self->labels );
57
+ self->numCalculatedSuperpixels = self->superpixelSlic ->getNumberOfSuperpixels ();
58
+ self->superpixelSlic ->getLabelContourMask (self->labelContourMask , false );
59
+ }
60
+
61
+ #endif // HAVE_XIMGPROC
0 commit comments