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