Skip to content

Commit 2fa6831

Browse files
author
Arjun Comar
committed
Merge pull request #4 from W-Net-AI/master
Sending over excluded_functions.cpp/hpp and scalar.cpp/hpp for evaluation
2 parents dfee679 + 56aa7ac commit 2fa6831

File tree

7 files changed

+146
-2
lines changed

7 files changed

+146
-2
lines changed

modules/c/include/opencv2/c/excluded_functions.hpp

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,3 +17,16 @@
1717
*/
1818

1919
#include <opencv2/c/opencv_generated.hpp>
20+
21+
extern "C" {
22+
void cv_randu2(Mat* dst, Scalar* low, Scalar* high);
23+
void cv_goodFeaturesToTrack2(Mat* image, vector_Point2f* corners, int maxCorners, double qualityLevel, double minDistance, Mat* mask, int blockSize, bool useHarrisDetector, double k);
24+
Mat* cv_create_Mat_as_vectort(vector_Point2f* vec, bool copyData);
25+
Size* cv_RotatedRect_size(RotatedRect* self);
26+
Point* cv_RotatedRect_center(RotatedRect* self);
27+
RotatedRect* cv_create_RotatedRect(Point* center, Size* size, float angle);
28+
void cv_inRangeS(Mat* src, Scalar* lowerb, Scalar* upperb, Mat* dst);
29+
int cv_createTrackbar(String* trackbarname, String* winname, int* value, int count, TrackbarCallback onChange, void* userdata);
30+
void cv_setMouseCallback(String* winname, MouseCallback onMouse, void* userdata);
31+
}
32+

modules/c/include/opencv2/c/mat.hpp

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@ extern "C" {
2121
Mat* cv_create_Mat();
2222
Mat* cv_create_Mat_typed(int rows, int cols, int type);
2323
Mat* cv_create_Mat_with_data(int rows, int cols, int type, void* data);
24+
Mat* cv_create_Mat_with_value(int rows, int cols, int type, Scalar* s);
2425
Mat* cv_Mat_assign(Mat* self, Mat* m);
2526
Mat* cv_Mat_assignVal(Mat* self, Scalar* s);
2627
Mat* cv_Mat_getRow(Mat* self, int y);
@@ -35,6 +36,7 @@ void cv_Mat_copyTo(Mat* self, Mat* m);
3536
void cv_Mat_copyTo_masked(Mat* self, Mat* m, Mat* mask);
3637
void cv_Mat_assignTo(Mat* self, Mat* m);
3738
void cv_Mat_assignTo_t(Mat*self, Mat* m, int t);
39+
void cv_Mat_convertTo(Mat* self,Mat* m, int rtype, double alpha, double beta);
3840
Mat* cv_Mat_setTo(Mat*self, Scalar* value);
3941
Mat* cv_Mat_setTo_masked(Mat* self, Scalar* value, Mat* mask);
4042
Mat* cv_Mat_reshape(Mat* self, int cn);
@@ -50,6 +52,7 @@ int cv_Mat_rows(Mat* self);
5052
int cv_Mat_cols(Mat* self);
5153
int cv_Mat_empty(Mat* self);
5254
Size* cv_Mat_size(Mat* self);
55+
size_t cv_Mat_get_Step(Mat* self);
5356
size_t cv_Mat_step1(Mat* self);
5457
uchar* cv_Mat_ptr(Mat* self);
5558
uchar* cv_Mat_ptr_index(Mat* self, int i);
@@ -67,5 +70,8 @@ double cv_Mat_dot(Mat* self, Mat* m);
6770
Mat* cv_Mat_cross(Mat* self, Mat* m);
6871
void cv_Mat_locateROI(Mat* self, Size* s, Point* p);
6972
Mat* cv_Mat_adjustROI(Mat* self, int dtop, int dbottom, int dleft, int dright);
73+
void cv_delete_Mat(Mat* self);
74+
void cv_destruct_Mat(Mat* self);
75+
void cv_delete_MatExpr(MatExpr* self);
76+
void cv_destruct_MatExpr(MatExpr* self);
7077
}
71-
Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
/*
2+
* =====================================================================================
3+
*
4+
* Filename: scalar.hpp
5+
*
6+
* Description: Wrappers for the OpenCV Matrix class
7+
*
8+
* Version: 1.0
9+
* Created: 03/17/14 18:85:00
10+
* Revision: none
11+
* Compiler: g++
12+
*
13+
* Author: Arjun Comar
14+
*
15+
* =====================================================================================
16+
*/
17+
18+
#include <opencv2/c/opencv_generated.hpp>
19+
20+
extern "C" {
21+
Scalar* cv_create_Scalar(double val0, double val1, double val2, double val3);
22+
Scalar* cv_create_scalarAll(double val0123);
23+
}

modules/c/src/excluded_functions.cpp

Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,3 +17,43 @@
1717
*/
1818
#include <opencv2/c/excluded_functions.hpp>
1919

20+
extern "C" {
21+
22+
void cv_randu2(Mat* dst, Scalar* low, Scalar* high) {
23+
cv::randu(*dst, *low, *high);
24+
}
25+
26+
void cv_goodFeaturesToTrack2(Mat* image, vector_Point2f* corners, int maxCorners, double qualityLevel, double minDistance, Mat* mask, int blockSize, bool useHarrisDetector, double k) {
27+
cv::goodFeaturesToTrack(*image, *corners, maxCorners, qualityLevel, minDistance, *mask, blockSize, useHarrisDetector, k);
28+
}
29+
30+
Mat* cv_create_Mat_as_vectort(vector_Point2f* vec, bool copyData) {
31+
return new Mat(*vec, copyData);
32+
}
33+
34+
Point* cv_RotatedRect_center(RotatedRect* self) {
35+
return new Point(self->center);
36+
}
37+
38+
Size* cv_RotatedRect_size(RotatedRect* self) {
39+
return new Size(self->size);
40+
}
41+
42+
RotatedRect* cv_create_RotatedRect(Point* center, Size* size, float angle) {
43+
return new RotatedRect(*center, *size, angle);
44+
}
45+
46+
void cv_inRangeS(Mat* src, Scalar* lowerb, Scalar* upperb, Mat* dst) {
47+
cv::inRange(*src, *lowerb, *upperb, *dst);
48+
}
49+
50+
int cv_createTrackbar(String* trackbarname, String* winname, int* value, int count, TrackbarCallback onChange, void* userdata) {
51+
return cv::createTrackbar(*trackbarname, *winname, value, count, onChange, userdata);
52+
}
53+
54+
void cv_setMouseCallback(String* winname, MouseCallback onMouse, void* userdata) {
55+
return cv::setMouseCallback(*winname, onMouse, userdata);
56+
}
57+
58+
59+
}

modules/c/src/genc.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@
2222
simple_types = ["int", "int64", "bool", "float", "double",
2323
"char*", "char", "size_t", "c_string", "void"]
2424

25-
excluded_functions = []
25+
excluded_functions = ["cv_randu2","cv_goodFeaturesToTrack2","cv_create_Mat_as_vectort","cv_RotatedRect_size","cv_RotatedRect_center","cv_create_RotatedRect","cv_inRangeS","cv_createTrackbar","cv_setMouseCallback"]
2626

2727

2828
class TypeInfo(object):

modules/c/src/mat.cpp

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@
1818
#include <opencv2/c/mat.hpp>
1919

2020
extern "C" {
21+
2122
Mat* cv_create_Mat() {
2223
return new Mat();
2324
}
@@ -30,6 +31,11 @@ Mat* cv_create_Mat_with_data(int rows, int cols, int type, void* data) {
3031
return new Mat(rows, cols, type, data);
3132
}
3233

34+
Mat* cv_create_Mat_with_value(int rows, int cols, int type, Scalar* s) {
35+
return new Mat(rows, cols, type, *s);
36+
}
37+
38+
3339
Mat* cv_Mat_assign(Mat* self, Mat* m) {
3440
*self = *m;
3541
return self;
@@ -88,6 +94,10 @@ void cv_Mat_assignTo_t(Mat*self, Mat* m, int t) {
8894
self->assignTo(*m, t);
8995
}
9096

97+
void cv_Mat_convertTo(Mat* self,Mat* m, int rtype, double alpha, double beta) {
98+
self->convertTo(*m, rtype, alpha, beta);
99+
}
100+
91101
Mat* cv_Mat_setTo(Mat* self, Scalar* value) {
92102
Mat* m = new Mat;
93103
*m = *value;
@@ -152,6 +162,10 @@ Size* cv_Mat_size(Mat* self) {
152162
return new Size(self->size());
153163
}
154164

165+
size_t cv_Mat_get_Step(Mat* self) {
166+
return self->step;
167+
}
168+
155169
size_t cv_Mat_step1(Mat* self) {
156170
return self->step1();
157171
}
@@ -222,4 +236,20 @@ Mat* cv_Mat_adjustROI(Mat* self, int dtop, int dbottom, int dleft, int dright) {
222236
return new Mat(self->adjustROI(dtop, dbottom, dleft, dright));
223237
}
224238

239+
void cv_delete_Mat(Mat* self) {
240+
delete self;
241+
}
242+
243+
void cv_destruct_Mat(Mat* self) {
244+
self->~Mat();
245+
}
246+
247+
void cv_delete_MatExpr(MatExpr* self) {
248+
delete self;
249+
}
250+
251+
void cv_destruct_MatExpr(MatExpr* self) {
252+
self->~MatExpr();
253+
}
254+
225255
}

modules/c/src/scalar.cpp

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
/*
2+
* =====================================================================================
3+
*
4+
* Filename: scalar.cpp
5+
*
6+
* Description:
7+
*
8+
* Version: 1.0
9+
* Created: 03/17/14 18:49:28
10+
* Revision: none
11+
* Compiler: gcc
12+
*
13+
* Author: YOUR NAME (),
14+
* Organization:
15+
*
16+
* =====================================================================================
17+
*/
18+
#include <opencv2/c/scalar.hpp>
19+
20+
extern "C" {
21+
22+
Scalar* cv_create_Scalar(double val0, double val1, double val2, double val3)
23+
{
24+
return new Scalar(val0, val1, val2, val3);
25+
}
26+
27+
Scalar* cv_create_scalarAll(double val0123)
28+
{
29+
return new Scalar(Scalar::all(val0123));
30+
}
31+
32+
}

0 commit comments

Comments
 (0)