1 |
commit: 5dfc738e3025c2559923c8bb72d7c4399aaec89b |
2 |
Author: Amy Winston <amynka <AT> gentoo <DOT> org> |
3 |
AuthorDate: Wed Mar 2 12:10:06 2016 +0000 |
4 |
Commit: Amy Winston <amynka <AT> gentoo <DOT> org> |
5 |
CommitDate: Wed Mar 2 12:10:06 2016 +0000 |
6 |
URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=5dfc738e |
7 |
|
8 |
media-libs/opencv: revert drop old 3.1.0-r1 and patches |
9 |
|
10 |
This reverts commit 48656e3b700cf6d771db428bc6dde322753839d3. |
11 |
|
12 |
.../files/opencv-3.1.0-fix-hal-headers.patch | 91 ++++++++ |
13 |
.../files/opencv-3.1.0-fix-ocl-declaration.patch | 214 +++++++++++++++++ |
14 |
.../files/opencv-3.1.0-invalid-string-usage.patch | 75 ++++++ |
15 |
media-libs/opencv/opencv-3.1.0-r1.ebuild | 252 +++++++++++++++++++++ |
16 |
4 files changed, 632 insertions(+) |
17 |
|
18 |
diff --git a/media-libs/opencv/files/opencv-3.1.0-fix-hal-headers.patch b/media-libs/opencv/files/opencv-3.1.0-fix-hal-headers.patch |
19 |
new file mode 100644 |
20 |
index 0000000..dd77571 |
21 |
--- /dev/null |
22 |
+++ b/media-libs/opencv/files/opencv-3.1.0-fix-hal-headers.patch |
23 |
@@ -0,0 +1,91 @@ |
24 |
+From f529a1df2b17bcada1179ddcaf1352e3a5ba97b8 Mon Sep 17 00:00:00 2001 |
25 |
+From: Maksim Shabunin <maksim.shabunin@××××××.com> |
26 |
+Date: Tue, 15 Dec 2015 17:51:08 +0300 |
27 |
+Subject: [PATCH] Fixed HAL headers location |
28 |
+ |
29 |
+diff --git opencv_contrib-master/modules/xfeatures2d/src/sift.cpp opencv_contrib-master/modules/xfeatures2d/src/sift.cpp |
30 |
+index fc67c4d..9634fbb 100644 |
31 |
+--- opencv_contrib-master/modules/xfeatures2d/src/sift.cpp |
32 |
++++ opencv_contrib-master/modules/xfeatures2d/src/sift.cpp |
33 |
+@@ -105,6 +105,7 @@ |
34 |
+ #include "precomp.hpp" |
35 |
+ #include <iostream> |
36 |
+ #include <stdarg.h> |
37 |
++#include <opencv2/core/hal/hal.hpp> |
38 |
+ |
39 |
+ namespace cv |
40 |
+ { |
41 |
+@@ -337,9 +338,9 @@ static float calcOrientationHist( const Mat& img, Point pt, int radius, |
42 |
+ len = k; |
43 |
+ |
44 |
+ // compute gradient values, orientations and the weights over the pixel neighborhood |
45 |
+- hal::exp(W, W, len); |
46 |
+- hal::fastAtan2(Y, X, Ori, len, true); |
47 |
+- hal::magnitude(X, Y, Mag, len); |
48 |
++ cv::hal::exp32f(W, W, len); |
49 |
++ cv::hal::fastAtan2(Y, X, Ori, len, true); |
50 |
++ cv::hal::magnitude32f(X, Y, Mag, len); |
51 |
+ |
52 |
+ for( k = 0; k < len; k++ ) |
53 |
+ { |
54 |
+@@ -620,9 +621,9 @@ static void calcSIFTDescriptor( const Mat& img, Point2f ptf, float ori, float sc |
55 |
+ } |
56 |
+ |
57 |
+ len = k; |
58 |
+- hal::fastAtan2(Y, X, Ori, len, true); |
59 |
+- hal::magnitude(X, Y, Mag, len); |
60 |
+- hal::exp(W, W, len); |
61 |
++ cv::hal::fastAtan2(Y, X, Ori, len, true); |
62 |
++ cv::hal::magnitude32f(X, Y, Mag, len); |
63 |
++ cv::hal::exp32f(W, W, len); |
64 |
+ |
65 |
+ for( k = 0; k < len; k++ ) |
66 |
+ { |
67 |
+ |
68 |
+diff --git opencv_contrib-master/modules/optflow/src/motempl.cpp opencv_contrib-master/modules/optflow/src/motempl.cpp |
69 |
+index ec18013..452ad63 100644 |
70 |
+--- opencv_contrib-master/modules/optflow/src/motempl.cpp |
71 |
++++ opencv_contrib-master/modules/optflow/src/motempl.cpp |
72 |
+@@ -41,6 +41,7 @@ |
73 |
+ |
74 |
+ #include "precomp.hpp" |
75 |
+ #include "opencv2/core/utility.hpp" |
76 |
++#include "opencv2/core/hal/hal.hpp" |
77 |
+ #include "opencl_kernels_optflow.hpp" |
78 |
+ |
79 |
+ namespace cv { |
80 |
+@@ -212,7 +213,7 @@ void calcMotionGradient( InputArray _mhi, OutputArray _mask, |
81 |
+ float* orient_row = orient.ptr<float>(y); |
82 |
+ uchar* mask_row = mask.ptr<uchar>(y); |
83 |
+ |
84 |
+- hal::fastAtan2(dY_max_row, dX_min_row, orient_row, size.width, true); |
85 |
++ cv::hal::fastAtan2(dY_max_row, dX_min_row, orient_row, size.width, true); |
86 |
+ |
87 |
+ // make orientation zero where the gradient is very small |
88 |
+ for( x = 0; x < size.width; x++ ) |
89 |
+diff --git opencv_contrib-master/modules/ximgproc/src/fgs_filter.cpp opencv_contrib-master/modules/ximgproc/src/fgs_filter.cpp |
90 |
+index e89eb8f..39307e5 100644 |
91 |
+--- opencv_contrib-master/modules/ximgproc/src/fgs_filter.cpp |
92 |
++++ opencv_contrib-master/modules/ximgproc/src/fgs_filter.cpp |
93 |
+@@ -35,7 +35,7 @@ |
94 |
+ */ |
95 |
+ |
96 |
+ #include "precomp.hpp" |
97 |
+-#include "opencv2/hal/intrin.hpp" |
98 |
++#include "opencv2/core/hal/intrin.hpp" |
99 |
+ #include <vector> |
100 |
+ |
101 |
+ namespace cv { |
102 |
+diff --git opencv_contrib-master/modules/xphoto/src/grayworld_white_balance.cpp opencv_contrib-master/modules/xphoto/src/grayworld_white_balance.cpp |
103 |
+index 4780497..15530d3 100644 |
104 |
+--- opencv_contrib-master/modules/xphoto/src/grayworld_white_balance.cpp |
105 |
++++ opencv_contrib-master/modules/xphoto/src/grayworld_white_balance.cpp |
106 |
+@@ -40,7 +40,7 @@ |
107 |
+ #include "opencv2/xphoto.hpp" |
108 |
+ |
109 |
+ #include "opencv2/core.hpp" |
110 |
+-#include "opencv2/hal/intrin.hpp" |
111 |
++#include "opencv2/core/hal/intrin.hpp" |
112 |
+ |
113 |
+ namespace cv { namespace xphoto { |
114 |
+ |
115 |
|
116 |
diff --git a/media-libs/opencv/files/opencv-3.1.0-fix-ocl-declaration.patch b/media-libs/opencv/files/opencv-3.1.0-fix-ocl-declaration.patch |
117 |
new file mode 100644 |
118 |
index 0000000..e9a190c |
119 |
--- /dev/null |
120 |
+++ b/media-libs/opencv/files/opencv-3.1.0-fix-ocl-declaration.patch |
121 |
@@ -0,0 +1,214 @@ |
122 |
+From ac8dd366e4a1877e0af16961a4094496bed955f7 Mon Sep 17 00:00:00 2001 |
123 |
+From: Alexander Alekhin <alexander.alekhin@××××××.com> |
124 |
+Date: Sun, 13 Sep 2015 21:18:47 +0300 |
125 |
+Subject: [PATCH] ocl: fix "off" mode |
126 |
+ |
127 |
+diff --git opencv_contrib-master/modules/tracking/src/tldDetector.cpp opencv_contrib-master/modules/tracking/src/tldDetector.cpp |
128 |
+index cbb783e..d61444b 100644 |
129 |
+--- opencv_contrib-master/modules/tracking/src/tldDetector.cpp |
130 |
++++ opencv_contrib-master/modules/tracking/src/tldDetector.cpp |
131 |
+@@ -104,6 +104,7 @@ namespace cv |
132 |
+ return splus / (sminus + splus); |
133 |
+ } |
134 |
+ |
135 |
++#ifdef HAVE_OPENCL |
136 |
+ double TLDDetector::ocl_Sr(const Mat_<uchar>& patch) |
137 |
+ { |
138 |
+ //int64 e1, e2, e3, e4; |
139 |
+@@ -283,6 +284,7 @@ namespace cv |
140 |
+ //t = (e2 - e1) / getTickFrequency()*1000.0; |
141 |
+ //printf("Sr GPU: %f\n\n", t); |
142 |
+ } |
143 |
++#endif |
144 |
+ |
145 |
+ // Calculate Conservative similarity of the patch (NN-Model) |
146 |
+ double TLDDetector::Sc(const Mat_<uchar>& patch) |
147 |
+@@ -337,6 +339,7 @@ namespace cv |
148 |
+ return splus / (sminus + splus); |
149 |
+ } |
150 |
+ |
151 |
++#ifdef HAVE_OPENCL |
152 |
+ double TLDDetector::ocl_Sc(const Mat_<uchar>& patch) |
153 |
+ { |
154 |
+ //int64 e1, e2, e3, e4; |
155 |
+@@ -415,6 +418,7 @@ namespace cv |
156 |
+ return 0.0; |
157 |
+ return splus / (sminus + splus); |
158 |
+ } |
159 |
++#endif // HAVE_OPENCL |
160 |
+ |
161 |
+ // Generate Search Windows for detector from aspect ratio of initial BBs |
162 |
+ void TLDDetector::generateScanGrid(int rows, int cols, Size initBox, std::vector<Rect2d>& res, bool withScaling) |
163 |
+@@ -565,6 +569,7 @@ namespace cv |
164 |
+ return true; |
165 |
+ } |
166 |
+ |
167 |
++#ifdef HAVE_OPENCL |
168 |
+ bool TLDDetector::ocl_detect(const Mat& img, const Mat& imgBlurred, Rect2d& res, std::vector<LabeledPatch>& patches, Size initSize) |
169 |
+ { |
170 |
+ patches.clear(); |
171 |
+@@ -696,6 +701,7 @@ namespace cv |
172 |
+ res = maxScRect; |
173 |
+ return true; |
174 |
+ } |
175 |
++#endif // HAVE_OPENCL |
176 |
+ |
177 |
+ // Computes the variance of subimage given by box, with the help of two integral |
178 |
+ // images intImgP and intImgP2 (sum of squares), which should be also provided. |
179 |
+diff --git opencv_contrib-master/modules/tracking/src/tldDetector.hpp opencv_contrib-master/modules/tracking/src/tldDetector.hpp |
180 |
+index 3e11895..1caff57 100644 |
181 |
+--- opencv_contrib-master/modules/tracking/src/tldDetector.hpp |
182 |
++++ opencv_contrib-master/modules/tracking/src/tldDetector.hpp |
183 |
+@@ -74,10 +74,12 @@ namespace cv |
184 |
+ inline double ensembleClassifierNum(const uchar* data); |
185 |
+ inline void prepareClassifiers(int rowstep); |
186 |
+ double Sr(const Mat_<uchar>& patch); |
187 |
+- double ocl_Sr(const Mat_<uchar>& patch); |
188 |
+ double Sc(const Mat_<uchar>& patch); |
189 |
++#ifdef HAVE_OPENCL |
190 |
++ double ocl_Sr(const Mat_<uchar>& patch); |
191 |
+ double ocl_Sc(const Mat_<uchar>& patch); |
192 |
+ void ocl_batchSrSc(const Mat_<uchar>& patches, double *resultSr, double *resultSc, int numOfPatches); |
193 |
++#endif |
194 |
+ |
195 |
+ std::vector<TLDEnsembleClassifier> classifiers; |
196 |
+ Mat *posExp, *negExp; |
197 |
+diff --git opencv_contrib-master/modules/tracking/src/tldModel.cpp opencv_contrib-master/modules/tracking/src/tldModel.cpp |
198 |
+index 0854022..47fc32a 100644 |
199 |
+--- opencv_contrib-master/modules/tracking/src/tldModel.cpp |
200 |
++++ opencv_contrib-master/modules/tracking/src/tldModel.cpp |
201 |
+@@ -246,6 +246,7 @@ namespace cv |
202 |
+ dfprintf((stdout, "\n"));*/ |
203 |
+ } |
204 |
+ |
205 |
++#ifdef HAVE_OPENCL |
206 |
+ void TrackerTLDModel::ocl_integrateAdditional(const std::vector<Mat_<uchar> >& eForModel, const std::vector<Mat_<uchar> >& eForEnsemble, bool isPositive) |
207 |
+ { |
208 |
+ int positiveIntoModel = 0, negativeIntoModel = 0, positiveIntoEnsemble = 0, negativeIntoEnsemble = 0; |
209 |
+@@ -315,6 +316,7 @@ namespace cv |
210 |
+ dfprintf((stdout, "positiveIntoEnsemble = %d ", positiveIntoEnsemble)); |
211 |
+ dfprintf((stdout, "\n"));*/ |
212 |
+ } |
213 |
++#endif // HAVE_OPENCL |
214 |
+ |
215 |
+ //Push the patch to the model |
216 |
+ void TrackerTLDModel::pushIntoModel(const Mat_<uchar>& example, bool positive) |
217 |
+diff --git opencv_contrib-master/modules/tracking/src/tldModel.hpp opencv_contrib-master/modules/tracking/src/tldModel.hpp |
218 |
+index be9141a..ba7c926 100644 |
219 |
+--- opencv_contrib-master/modules/tracking/src/tldModel.hpp |
220 |
++++ opencv_contrib-master/modules/tracking/src/tldModel.hpp |
221 |
+@@ -58,7 +58,9 @@ namespace cv |
222 |
+ void setBoudingBox(Rect2d boundingBox){ boundingBox_ = boundingBox; } |
223 |
+ void integrateRelabeled(Mat& img, Mat& imgBlurred, const std::vector<TLDDetector::LabeledPatch>& patches); |
224 |
+ void integrateAdditional(const std::vector<Mat_<uchar> >& eForModel, const std::vector<Mat_<uchar> >& eForEnsemble, bool isPositive); |
225 |
++#ifdef HAVE_OPENCL |
226 |
+ void ocl_integrateAdditional(const std::vector<Mat_<uchar> >& eForModel, const std::vector<Mat_<uchar> >& eForEnsemble, bool isPositive); |
227 |
++#endif |
228 |
+ Size getMinSize(){ return minSize_; } |
229 |
+ void printme(FILE* port = stdout); |
230 |
+ Ptr<TLDDetector> detector; |
231 |
+diff --git opencv_contrib-master/modules/tracking/src/tldTracker.cpp opencv_contrib-master/modules/tracking/src/tldTracker.cpp |
232 |
+index 0f1e2f7..a5190f5 100644 |
233 |
+--- opencv_contrib-master/modules/tracking/src/tldTracker.cpp |
234 |
++++ opencv_contrib-master/modules/tracking/src/tldTracker.cpp |
235 |
+@@ -123,9 +123,11 @@ bool TrackerTLDImpl::updateImpl(const Mat& image, Rect2d& boundingBox) |
236 |
+ |
237 |
+ if (i == 1) |
238 |
+ { |
239 |
++#ifdef HAVE_OPENCL |
240 |
+ if (ocl::haveOpenCL()) |
241 |
+ DETECT_FLG = tldModel->detector->ocl_detect(imageForDetector, image_blurred, tmpCandid, detectorResults, tldModel->getMinSize()); |
242 |
+ else |
243 |
++#endif |
244 |
+ DETECT_FLG = tldModel->detector->detect(imageForDetector, image_blurred, tmpCandid, detectorResults, tldModel->getMinSize()); |
245 |
+ } |
246 |
+ |
247 |
+@@ -211,17 +213,21 @@ bool TrackerTLDImpl::updateImpl(const Mat& image, Rect2d& boundingBox) |
248 |
+ tldModel->integrateRelabeled(imageForDetector, image_blurred, detectorResults); |
249 |
+ //dprintf(("%d relabeled by nExpert\n", negRelabeled)); |
250 |
+ pExpert.additionalExamples(examplesForModel, examplesForEnsemble); |
251 |
+- if (ocl::haveOpenCL()) |
252 |
+- tldModel->ocl_integrateAdditional(examplesForModel, examplesForEnsemble, true); |
253 |
+- else |
254 |
+- tldModel->integrateAdditional(examplesForModel, examplesForEnsemble, true); |
255 |
++#ifdef HAVE_OPENCL |
256 |
++ if (ocl::haveOpenCL()) |
257 |
++ tldModel->ocl_integrateAdditional(examplesForModel, examplesForEnsemble, true); |
258 |
++ else |
259 |
++#endif |
260 |
++ tldModel->integrateAdditional(examplesForModel, examplesForEnsemble, true); |
261 |
+ examplesForModel.clear(); examplesForEnsemble.clear(); |
262 |
+ nExpert.additionalExamples(examplesForModel, examplesForEnsemble); |
263 |
+ |
264 |
+- if (ocl::haveOpenCL()) |
265 |
+- tldModel->ocl_integrateAdditional(examplesForModel, examplesForEnsemble, false); |
266 |
+- else |
267 |
+- tldModel->integrateAdditional(examplesForModel, examplesForEnsemble, false); |
268 |
++#ifdef HAVE_OPENCL |
269 |
++ if (ocl::haveOpenCL()) |
270 |
++ tldModel->ocl_integrateAdditional(examplesForModel, examplesForEnsemble, false); |
271 |
++ else |
272 |
++#endif |
273 |
++ tldModel->integrateAdditional(examplesForModel, examplesForEnsemble, false); |
274 |
+ } |
275 |
+ else |
276 |
+ { |
277 |
+diff --git opencv_contrib-master/modules/xfeatures2d/src/surf.cpp opencv_contrib-master/modules/xfeatures2d/src/surf.cpp |
278 |
+index 673817e..af5ceaf6 100644 |
279 |
+--- opencv_contrib-master/modules/xfeatures2d/src/surf.cpp |
280 |
++++ opencv_contrib-master/modules/xfeatures2d/src/surf.cpp |
281 |
+@@ -892,6 +892,7 @@ void SURF_Impl::detectAndCompute(InputArray _img, InputArray _mask, |
282 |
+ CV_Assert(!_img.empty() && CV_MAT_DEPTH(imgtype) == CV_8U && (imgcn == 1 || imgcn == 3 || imgcn == 4)); |
283 |
+ CV_Assert(_descriptors.needed() || !useProvidedKeypoints); |
284 |
+ |
285 |
++#ifdef HAVE_OPENCL |
286 |
+ if( ocl::useOpenCL() ) |
287 |
+ { |
288 |
+ SURF_OCL ocl_surf; |
289 |
+@@ -918,6 +919,7 @@ void SURF_Impl::detectAndCompute(InputArray _img, InputArray _mask, |
290 |
+ return; |
291 |
+ } |
292 |
+ } |
293 |
++#endif // HAVE_OPENCL |
294 |
+ |
295 |
+ Mat img = _img.getMat(), mask = _mask.getMat(), mask1, sum, msum; |
296 |
+ |
297 |
+diff --git opencv_contrib-master/modules/xfeatures2d/src/surf.hpp opencv_contrib-master/modules/xfeatures2d/src/surf.hpp |
298 |
+index 2c4e271..cf3fda1 100644 |
299 |
+--- opencv_contrib-master/modules/xfeatures2d/src/surf.hpp |
300 |
++++ opencv_contrib-master/modules/xfeatures2d/src/surf.hpp |
301 |
+@@ -64,6 +64,7 @@ class SURF_Impl : public SURF |
302 |
+ bool upright; |
303 |
+ }; |
304 |
+ |
305 |
++#ifdef HAVE_OPENCL |
306 |
+ class SURF_OCL |
307 |
+ { |
308 |
+ public: |
309 |
+@@ -145,6 +146,7 @@ class SURF_OCL |
310 |
+ |
311 |
+ int status; |
312 |
+ }; |
313 |
++#endif // HAVE_OPENCL |
314 |
+ |
315 |
+ /* |
316 |
+ template<typename _Tp> void copyVectorToUMat(const std::vector<_Tp>& v, UMat& um) |
317 |
+diff --git opencv_contrib-master/modules/xfeatures2d/src/surf.ocl.cpp opencv_contrib-master/modules/xfeatures2d/src/surf.ocl.cpp |
318 |
+index b12ebd3..3d9845d 100644 |
319 |
+--- opencv_contrib-master/modules/xfeatures2d/src/surf.ocl.cpp |
320 |
++++ opencv_contrib-master/modules/xfeatures2d/src/surf.ocl.cpp |
321 |
+@@ -43,6 +43,9 @@ |
322 |
+ // |
323 |
+ //M*/ |
324 |
+ #include "precomp.hpp" |
325 |
++ |
326 |
++#ifdef HAVE_OPENCL |
327 |
++ |
328 |
+ #include "surf.hpp" |
329 |
+ |
330 |
+ #include <cstdio> |
331 |
+@@ -461,3 +464,4 @@ bool SURF_OCL::calcOrientation(UMat &keypoints) |
332 |
+ } |
333 |
+ } |
334 |
+ |
335 |
++#endif // HAVE_OPENCL |
336 |
|
337 |
diff --git a/media-libs/opencv/files/opencv-3.1.0-invalid-string-usage.patch b/media-libs/opencv/files/opencv-3.1.0-invalid-string-usage.patch |
338 |
new file mode 100644 |
339 |
index 0000000..c9f85a7 |
340 |
--- /dev/null |
341 |
+++ b/media-libs/opencv/files/opencv-3.1.0-invalid-string-usage.patch |
342 |
@@ -0,0 +1,75 @@ |
343 |
+From 9862a8bac536981c1c1a74710741fb40db4beac7 Mon Sep 17 00:00:00 2001 |
344 |
+From: Alexander Alekhin <alexander.alekhin@××××××.com> |
345 |
+Date: Wed, 23 Sep 2015 12:44:26 +0300 |
346 |
+Subject: [PATCH] fix invalid String usage |
347 |
+ |
348 |
+--- |
349 |
+ modules/tracking/src/tldDetector.cpp | 6 +++--- |
350 |
+ modules/ximgproc/samples/live_demo.cpp | 12 ++++++------ |
351 |
+ 2 files changed, 9 insertions(+), 9 deletions(-) |
352 |
+ |
353 |
+diff --git opencv_contrib-master/modules/tracking/src/tldDetector.cpp opencv_contrib-master/modules/tracking/src/tldDetector.cpp |
354 |
+index cbb783e..0916092 100644 |
355 |
+--- opencv_contrib-master/modules/tracking/src/tldDetector.cpp |
356 |
++++ opencv_contrib-master/modules/tracking/src/tldDetector.cpp |
357 |
+@@ -122,7 +122,7 @@ namespace cv |
358 |
+ ocl::Kernel k; |
359 |
+ ocl::ProgramSource src = ocl::tracking::tldDetector_oclsrc; |
360 |
+ String error; |
361 |
+- ocl::Program prog(src, NULL, error); |
362 |
++ ocl::Program prog(src, String(), error); |
363 |
+ k.create("NCC", prog); |
364 |
+ if (k.empty()) |
365 |
+ printf("Kernel create failed!!!\n"); |
366 |
+@@ -198,7 +198,7 @@ namespace cv |
367 |
+ ocl::Kernel k; |
368 |
+ ocl::ProgramSource src = ocl::tracking::tldDetector_oclsrc; |
369 |
+ String error; |
370 |
+- ocl::Program prog(src, NULL, error); |
371 |
++ ocl::Program prog(src, String(), error); |
372 |
+ k.create("batchNCC", prog); |
373 |
+ if (k.empty()) |
374 |
+ printf("Kernel create failed!!!\n"); |
375 |
+@@ -355,7 +355,7 @@ namespace cv |
376 |
+ ocl::Kernel k; |
377 |
+ ocl::ProgramSource src = ocl::tracking::tldDetector_oclsrc; |
378 |
+ String error; |
379 |
+- ocl::Program prog(src, NULL, error); |
380 |
++ ocl::Program prog(src, String(), error); |
381 |
+ k.create("NCC", prog); |
382 |
+ if (k.empty()) |
383 |
+ printf("Kernel create failed!!!\n"); |
384 |
+diff --git opencv_contrib-master/modules/ximgproc/samples/live_demo.cpp opencv_contrib-master/modules/ximgproc/samples/live_demo.cpp |
385 |
+index dd5dc1b..8e16de3 100644 |
386 |
+--- opencv_contrib-master/modules/ximgproc/samples/live_demo.cpp |
387 |
++++ opencv_contrib-master/modules/ximgproc/samples/live_demo.cpp |
388 |
+@@ -189,7 +189,7 @@ int main() |
389 |
+ |
390 |
+ //Thread trackbar |
391 |
+ cv::setNumThreads(g_numberOfCPUs); //speedup filtering |
392 |
+- createTrackbar("Threads", NULL, &g_numberOfCPUs, cv::getNumberOfCPUs(), changeNumberOfCpuCallback); |
393 |
++ createTrackbar("Threads", String(), &g_numberOfCPUs, cv::getNumberOfCPUs(), changeNumberOfCpuCallback); |
394 |
+ |
395 |
+ //Buttons to choose different modes |
396 |
+ createButton("Mode Details Enhancement", changeModeCallback, (void*)filterDetailEnhancement, QT_RADIOBOX, true); |
397 |
+@@ -199,15 +199,15 @@ int main() |
398 |
+ |
399 |
+ //sliders for Details Enhancement mode |
400 |
+ g_filterOp = filterDetailEnhancement; //set Details Enhancement as default filter |
401 |
+- createTrackbar("Detail contrast", NULL, &g_contrastBase, 200); |
402 |
+- createTrackbar("Detail level" , NULL, &g_detailsLevel, 200); |
403 |
++ createTrackbar("Detail contrast", String(), &g_contrastBase, 200); |
404 |
++ createTrackbar("Detail level" , String(), &g_detailsLevel, 200); |
405 |
+ |
406 |
+ //sliders for Stylizing mode |
407 |
+- createTrackbar("Style gamma", NULL, &g_edgesGamma, 300); |
408 |
++ createTrackbar("Style gamma", String(), &g_edgesGamma, 300); |
409 |
+ |
410 |
+ //sliders for every mode |
411 |
+- createTrackbar("Sigma Spatial", NULL, &g_sigmaSpatial, 200); |
412 |
+- createTrackbar("Sigma Color" , NULL, &g_sigmaColor, 200); |
413 |
++ createTrackbar("Sigma Spatial", String(), &g_sigmaSpatial, 200); |
414 |
++ createTrackbar("Sigma Color" , String(), &g_sigmaColor, 200); |
415 |
+ |
416 |
+ Mat rawFrame, outputFrame; |
417 |
+ Mat srcFrame, processedFrame; |
418 |
|
419 |
diff --git a/media-libs/opencv/opencv-3.1.0-r1.ebuild b/media-libs/opencv/opencv-3.1.0-r1.ebuild |
420 |
new file mode 100644 |
421 |
index 0000000..bbbcde9 |
422 |
--- /dev/null |
423 |
+++ b/media-libs/opencv/opencv-3.1.0-r1.ebuild |
424 |
@@ -0,0 +1,252 @@ |
425 |
+# Copyright 1999-2016 Gentoo Foundation |
426 |
+# Distributed under the terms of the GNU General Public License v2 |
427 |
+# $Id$ |
428 |
+ |
429 |
+EAPI=5 |
430 |
+PYTHON_COMPAT=( python{2_7,3_2,3_3,3_4,3_5} ) |
431 |
+ |
432 |
+inherit toolchain-funcs cmake-utils python-single-r1 java-pkg-opt-2 java-ant-2 |
433 |
+ |
434 |
+DESCRIPTION="A collection of algorithms and sample code for various computer vision problems" |
435 |
+HOMEPAGE="http://opencv.org" |
436 |
+ |
437 |
+SRC_URI=" |
438 |
+ mirror://sourceforge/opencvlibrary/opencv-unix/${PV}/${P}.zip |
439 |
+ https://github.com/Itseez/${PN}/archive/${PV}.zip -> ${P}.zip |
440 |
+ contrib? ( https://github.com/Itseez/${PN}_contrib/archive/${PV}.zip -> ${PN}_contrib.zip )" |
441 |
+ |
442 |
+LICENSE="BSD" |
443 |
+SLOT="0/3.1" # subslot = libopencv* soname version |
444 |
+KEYWORDS="~amd64 ~arm ~ppc ~ppc64 ~x86 ~amd64-linux" |
445 |
+IUSE="contrib cuda doc +eigen examples ffmpeg gdal gphoto2 gstreamer gtk ieee1394 ipp jpeg jpeg2k libav opencl openexr opengl openmp pch png +python qt4 qt5 testprograms threads tiff vaapi v4l vtk webp xine" |
446 |
+REQUIRED_USE=" |
447 |
+ python? ( ${PYTHON_REQUIRED_USE} ) |
448 |
+ ?? ( qt4 qt5 ) |
449 |
+" |
450 |
+ |
451 |
+# The following logic is intrinsic in the build system, but we do not enforce |
452 |
+# it on the useflags since this just blocks emerging pointlessly: |
453 |
+# gtk? ( !qt4 ) |
454 |
+# opengl? ( || ( gtk qt4 ) ) |
455 |
+# openmp? ( !threads ) |
456 |
+ |
457 |
+RDEPEND=" |
458 |
+ app-arch/bzip2 |
459 |
+ sys-libs/zlib |
460 |
+ cuda? ( >=dev-util/nvidia-cuda-toolkit-5.5 ) |
461 |
+ ffmpeg? ( |
462 |
+ libav? ( media-video/libav:0= ) |
463 |
+ !libav? ( media-video/ffmpeg:0= ) |
464 |
+ ) |
465 |
+ gdal? ( sci-libs/gdal ) |
466 |
+ gphoto2? ( media-libs/libgphoto2 ) |
467 |
+ gstreamer? ( |
468 |
+ media-libs/gstreamer:1.0 |
469 |
+ media-libs/gst-plugins-base:1.0 |
470 |
+ ) |
471 |
+ gtk? ( |
472 |
+ dev-libs/glib:2 |
473 |
+ x11-libs/gtk+:2 |
474 |
+ opengl? ( x11-libs/gtkglext ) |
475 |
+ ) |
476 |
+ java? ( >=virtual/jre-1.6:* ) |
477 |
+ jpeg? ( virtual/jpeg:0 ) |
478 |
+ jpeg2k? ( media-libs/jasper ) |
479 |
+ ieee1394? ( |
480 |
+ media-libs/libdc1394 |
481 |
+ sys-libs/libraw1394 |
482 |
+ ) |
483 |
+ ipp? ( sci-libs/ipp ) |
484 |
+ opencl? ( virtual/opencl ) |
485 |
+ openexr? ( media-libs/openexr ) |
486 |
+ opengl? ( virtual/opengl virtual/glu ) |
487 |
+ png? ( media-libs/libpng:0= ) |
488 |
+ python? ( ${PYTHON_DEPS} dev-python/numpy[${PYTHON_USEDEP}] ) |
489 |
+ qt4? ( |
490 |
+ dev-qt/qtgui:4 |
491 |
+ dev-qt/qttest:4 |
492 |
+ opengl? ( dev-qt/qtopengl:4 ) |
493 |
+ ) |
494 |
+ qt5? ( |
495 |
+ dev-qt/qtgui:5 |
496 |
+ dev-qt/qttest:5 |
497 |
+ dev-qt/qtconcurrent:5 |
498 |
+ opengl? ( dev-qt/qtopengl:5 ) |
499 |
+ ) |
500 |
+ threads? ( dev-cpp/tbb ) |
501 |
+ tiff? ( media-libs/tiff:0 ) |
502 |
+ v4l? ( >=media-libs/libv4l-0.8.3 ) |
503 |
+ vtk? ( sci-libs/vtk[rendering] ) |
504 |
+ webp? ( media-libs/libwebp ) |
505 |
+ xine? ( media-libs/xine-lib ) |
506 |
+" |
507 |
+DEPEND="${RDEPEND} |
508 |
+ virtual/pkgconfig |
509 |
+ eigen? ( dev-cpp/eigen:3 ) |
510 |
+ java? ( >=virtual/jdk-1.6 ) |
511 |
+" |
512 |
+ |
513 |
+pkg_setup() { |
514 |
+ use python && python-single-r1_pkg_setup |
515 |
+ java-pkg-opt-2_pkg_setup |
516 |
+} |
517 |
+ |
518 |
+src_prepare() { |
519 |
+ |
520 |
+ epatch "${FILESDIR}/${PN}-3.0.0-gles.patch" \ |
521 |
+ "${FILESDIR}/${PN}-3.1.0-cmake-no-opengl.patch" |
522 |
+ |
523 |
+ # remove bundled stuff |
524 |
+ rm -rf 3rdparty |
525 |
+ sed -i \ |
526 |
+ -e '/add_subdirectory(.*3rdparty.*)/ d' \ |
527 |
+ CMakeLists.txt cmake/*cmake || die |
528 |
+ |
529 |
+ if use contrib; then |
530 |
+ |
531 |
+ cd "${WORKDIR}" |
532 |
+ epatch "${FILESDIR}/${PN}-3.1.0-fix-hal-headers.patch" \ |
533 |
+ "${FILESDIR}/${PN}-3.1.0-fix-ocl-declaration.patch" \ |
534 |
+ "${FILESDIR}/${PN}-3.1.0-invalid-string-usage.patch" |
535 |
+ fi |
536 |
+ |
537 |
+ java-pkg-opt-2_src_prepare |
538 |
+} |
539 |
+ |
540 |
+src_configure() { |
541 |
+ if use openmp; then |
542 |
+ tc-has-openmp || die "Please switch to an openmp compatible compiler" |
543 |
+ fi |
544 |
+ |
545 |
+ JAVA_ANT_ENCODING="iso-8859-1" |
546 |
+ # set encoding so even this cmake build will pick it up. |
547 |
+ export ANT_OPTS+=" -Dfile.encoding=iso-8859-1" |
548 |
+ java-ant-2_src_configure |
549 |
+ |
550 |
+ # please dont sort here, order is the same as in CMakeLists.txt |
551 |
+ local mycmakeargs=( |
552 |
+ # the optinal dependency libraries |
553 |
+ $(cmake-utils_use_with ieee1394 1394) |
554 |
+ -DWITH_AVFOUNDATION=OFF # IOS |
555 |
+ -DWITH_CARBON=OFF # APPLE |
556 |
+ $(cmake-utils_use_with eigen) |
557 |
+ $(cmake-utils_use_with ffmpeg) |
558 |
+ -DWITH_VFW=OFF # video windows support |
559 |
+ $(cmake-utils_use_with gstreamer) |
560 |
+ -DWITH_GSTREAMER_0_10=OFF |
561 |
+ $(cmake-utils_use_with gtk) |
562 |
+ -DWITH_GTK_2_X=OFF |
563 |
+ $(cmake-utils_use_with ipp) |
564 |
+ $(cmake-utils_use_with java) |
565 |
+ $(cmake-utils_use_with jpeg2k JASPER) |
566 |
+ $(cmake-utils_use_with jpeg) |
567 |
+ $(cmake-utils_use_with webp) |
568 |
+ $(cmake-utils_use_with opencl) |
569 |
+ $(cmake-utils_use_with gphoto2) |
570 |
+ $(cmake-utils_use_with openexr) |
571 |
+ $(cmake-utils_use_with opengl) |
572 |
+ $(cmake-utils_use_with openmp) |
573 |
+ -DWITH_OPENNI=OFF #not packaged |
574 |
+ -DWITH_OPENNI2=OFF #not packaged |
575 |
+ $(cmake-utils_use_with png) |
576 |
+ $(cmake-utils_use_build python opencv_python) |
577 |
+ -DWITH_PVAPI=OFF # not packaged |
578 |
+ -DWITH_GIGEAPI=OFF |
579 |
+ -DWITH_QUICKTIME=OFF |
580 |
+ -DWITH_WIN32UI=OFF |
581 |
+ $(cmake-utils_use_with threads TBB) |
582 |
+ -DWITH_CSTRIPES=OFF |
583 |
+ -DWITH_PTHREADS_PF=ON |
584 |
+ $(cmake-utils_use_with tiff) |
585 |
+ -DWITH_UNICAP=OFF # not packaged |
586 |
+ $(cmake-utils_use_with v4l V4L) |
587 |
+ $(cmake-utils_use_with vtk VTK) |
588 |
+ -DWITH_LIBV4L=ON |
589 |
+ -DWITH_DSHOW=ON # direct show supp |
590 |
+ -DWITH_MSMF=OFF |
591 |
+ -DWITH_VIDEOINPUT=OFF # windows only |
592 |
+ -DWITH_XIMEA=OFF # windows only |
593 |
+ $(cmake-utils_use_with xine) |
594 |
+ -DWITH_CLP=OFF |
595 |
+ $(cmake-utils_use_with opencl) |
596 |
+ -DWITH_OPENCL_SVM=OFF |
597 |
+ $(cmake-utils_use_with opencl OPENCLAMDFFT) |
598 |
+ $(cmake-utils_use_with opencl OPENCLAMDBLAS) |
599 |
+ -DWITH_DIRECTX=OFF |
600 |
+ -DWITH_INTELPERC=OFF |
601 |
+ -DWITH_IPP_A=OFF |
602 |
+ -DWITH_MATLAB=ON #default |
603 |
+ $(cmake-utils_use_with vaapi VA) |
604 |
+ $(cmake-utils_use_with vaapi VA_INTEL) |
605 |
+ $(cmake-utils_use_with gdal gdal) |
606 |
+ # |
607 |
+ # OpenCV build components |
608 |
+ -DBUILD_SHARED_LIBS=ON |
609 |
+ -DBUILD_ANDROID_EXAMPLES=OFF |
610 |
+ $(cmake-utils_use_build doc DOCS) |
611 |
+ $(cmake-utils_use_build examples) |
612 |
+ $(cmake-utils_use_build java opencv_java) #for -java bug #555650 |
613 |
+ -DBUILD_PERF_TESTS=OFF |
614 |
+ $(cmake-utils_use_build testprograms TESTS) |
615 |
+ # install examples, tests etc |
616 |
+ $(cmake-utils_use examples INSTALL_C_EXAMPLES) |
617 |
+ $(cmake-utils_use testprograms INSTALL_TESTS) |
618 |
+ # build options |
619 |
+ $(cmake-utils_use_enable pch PRECOMPILED_HEADERS) |
620 |
+ -DOPENCV_EXTRA_FLAGS_RELEASE="" # black magic |
621 |
+ ) |
622 |
+ |
623 |
+ if use qt4; then |
624 |
+ mycmakeargs+=( "-DWITH_QT=4" ) |
625 |
+ elif use qt5; then |
626 |
+ mycmakeargs+=( "-DWITH_QT=5" ) |
627 |
+ else |
628 |
+ mycmakeargs+=( "-DWITH_QT=OFF" ) |
629 |
+ fi |
630 |
+ |
631 |
+ if use contrib; then |
632 |
+ mycmakeargs+=( "-DOPENCV_EXTRA_MODULES_PATH=../opencv_contrib-master/modules" ) |
633 |
+ fi |
634 |
+ |
635 |
+ if use cuda; then |
636 |
+ mycmakeargs+=( "-DWITH_CUDA=ON" ) |
637 |
+ mycmakeargs+=( "-DWITH_CUBLAS=ON" ) |
638 |
+ mycmakeargs+=( "-DWITH_CUFFT=ON" ) |
639 |
+ mycmakeargs+=( "-DWITH_NVCUVID=ON" ) #Nvidia video decoding library supp |
640 |
+ else |
641 |
+ mycmakeargs+=( "-DWITH_CUDA=OFF" ) |
642 |
+ mycmakeargs+=( "-DWITH_CUBLAS=OFF" ) |
643 |
+ mycmakeargs+=( "-DWITH_CUFFT=OFF" ) |
644 |
+ mycmakeargs+=( "-DWITH_NVCUVID=OFF" ) |
645 |
+ fi |
646 |
+ |
647 |
+ if use examples && use python; then |
648 |
+ mycmakeargs+=( "-DINSTALL_PYTHON_EXAMPLES=ON" ) |
649 |
+ else |
650 |
+ mycmakeargs+=( "-DINSTALL_PYTHON_EXAMPLES=OFF" ) |
651 |
+ fi |
652 |
+ |
653 |
+ # things we want to be hard off or not yet figured out |
654 |
+ mycmakeargs+=( |
655 |
+ "-DOPENCV_BUILD_3RDPARTY_LIBS=OFF" |
656 |
+ "-DBUILD_LATEX_DOCS=OFF" |
657 |
+ "-DBUILD_PACKAGE=OFF" |
658 |
+ "-DENABLE_PROFILING=OFF" |
659 |
+ ) |
660 |
+ |
661 |
+ # things we want to be hard enabled not worth useflag |
662 |
+ mycmakeargs+=( |
663 |
+ "-DCMAKE_SKIP_RPATH=ON" |
664 |
+ "-DOPENCV_DOC_INSTALL_PATH=${EPREFIX}/usr/share/doc/${PF}" |
665 |
+ ) |
666 |
+ |
667 |
+ # hardcode cuda paths |
668 |
+ mycmakeargs+=( |
669 |
+ "-DCUDA_NPP_LIBRARY_ROOT_DIR=/opt/cuda" |
670 |
+ ) |
671 |
+ |
672 |
+ # workaround for bug 413429 |
673 |
+ tc-export CC CXX |
674 |
+ |
675 |
+ cmake-utils_src_configure |
676 |
+} |