platform/upstream/opencv.git
9 years agoPython test: added options to provide local data path
Maksim Shabunin [Wed, 3 Dec 2014 15:12:01 +0000 (18:12 +0300)]
Python test: added options to provide local data path

9 years agoMerge pull request #3443 from HelenWong:bug3363Fix
Vadim Pisarevsky [Tue, 2 Dec 2014 09:14:36 +0000 (09:14 +0000)]
Merge pull request #3443 from HelenWong:bug3363Fix

9 years agoMerge pull request #3453 from mshabunin:doxygen-others
Vadim Pisarevsky [Tue, 2 Dec 2014 09:05:32 +0000 (09:05 +0000)]
Merge pull request #3453 from mshabunin:doxygen-others

9 years agoMerge pull request #3463 from Dikay900:fix_sample_video_writer
Vadim Pisarevsky [Tue, 2 Dec 2014 09:04:27 +0000 (09:04 +0000)]
Merge pull request #3463 from Dikay900:fix_sample_video_writer

9 years agoMerge pull request #3469 from a-wi:Fill_ellipse_arc_v3
Vadim Pisarevsky [Tue, 2 Dec 2014 09:03:52 +0000 (09:03 +0000)]
Merge pull request #3469 from a-wi:Fill_ellipse_arc_v3

9 years agoMerge pull request #3470 from Dmitry-Me:simplifyOverengineeredCode
Vadim Pisarevsky [Tue, 2 Dec 2014 09:00:59 +0000 (09:00 +0000)]
Merge pull request #3470 from Dmitry-Me:simplifyOverengineeredCode

9 years agoSimplify overengineered code
Dmitry-Me [Mon, 1 Dec 2014 14:58:06 +0000 (17:58 +0300)]
Simplify overengineered code

9 years agoFix determining bounding box of the edge collection in FillEdgeCollection().
Artur Wieczorek [Mon, 1 Dec 2014 13:30:05 +0000 (14:30 +0100)]
Fix determining bounding box of the edge collection in FillEdgeCollection().

There is necessary to account also x-coordinate of the end of the edge when determining bounding box of the edge collection.

9 years agoDoxygen documentation: BiB references and fixes
Maksim Shabunin [Wed, 26 Nov 2014 11:21:08 +0000 (14:21 +0300)]
Doxygen documentation: BiB references and fixes

9 years agoDoxygen documentation: more fixes and cleanups
Maksim Shabunin [Fri, 21 Nov 2014 08:28:14 +0000 (11:28 +0300)]
Doxygen documentation: more fixes and cleanups

9 years agoDoxygen documentation: mathbbm support
Maksim Shabunin [Fri, 21 Nov 2014 08:27:50 +0000 (11:27 +0300)]
Doxygen documentation: mathbbm support

9 years agoDoxygen documentation: cuda submodules reorganized
Maksim Shabunin [Thu, 20 Nov 2014 15:10:59 +0000 (18:10 +0300)]
Doxygen documentation: cuda submodules reorganized

9 years agoDoxygen documentation: viz
Maksim Shabunin [Thu, 20 Nov 2014 15:02:44 +0000 (18:02 +0300)]
Doxygen documentation: viz

9 years agoDoxygen documentation: shape, superres, videostab
Maksim Shabunin [Thu, 20 Nov 2014 14:08:58 +0000 (17:08 +0300)]
Doxygen documentation: shape, superres, videostab

9 years agoDoxygen documentation: cuda
Maksim Shabunin [Thu, 20 Nov 2014 13:42:06 +0000 (16:42 +0300)]
Doxygen documentation: cuda

9 years agoDoxygen documentation: flann, photo and stitching modules
Maksim Shabunin [Wed, 19 Nov 2014 16:08:03 +0000 (19:08 +0300)]
Doxygen documentation: flann, photo and stitching modules

9 years agoDoxygen doucmentation: ml module
Maksim Shabunin [Wed, 19 Nov 2014 14:55:13 +0000 (17:55 +0300)]
Doxygen doucmentation: ml module

9 years agoDoxygen documentation: calib3d and features2d modules
Maksim Shabunin [Wed, 19 Nov 2014 13:13:41 +0000 (16:13 +0300)]
Doxygen documentation: calib3d and features2d modules

9 years agoDoxygen documentation for: highgui, video, imgcodecs and videoio
Maksim Shabunin [Wed, 19 Nov 2014 08:29:31 +0000 (11:29 +0300)]
Doxygen documentation for: highgui, video, imgcodecs and videoio

9 years agoMerge pull request #3428 from 23pointsNorth:patch-6
Vadim Pisarevsky [Mon, 1 Dec 2014 10:45:31 +0000 (10:45 +0000)]
Merge pull request #3428 from 23pointsNorth:patch-6

9 years agoMerge pull request #3452 from Dmitry-Me:fixIncorrectSizeComputation
Vadim Pisarevsky [Mon, 1 Dec 2014 10:43:43 +0000 (10:43 +0000)]
Merge pull request #3452 from Dmitry-Me:fixIncorrectSizeComputation

9 years agoMerge pull request #3426 from mshabunin:doxygen-imgproc
Vadim Pisarevsky [Mon, 1 Dec 2014 10:43:13 +0000 (10:43 +0000)]
Merge pull request #3426 from mshabunin:doxygen-imgproc

9 years agoMerge pull request #3446 from pokeefe:fix-compilation-without-videoio
Vadim Pisarevsky [Mon, 1 Dec 2014 10:41:34 +0000 (10:41 +0000)]
Merge pull request #3446 from pokeefe:fix-compilation-without-videoio

9 years agoMerge pull request #3467 from Dikay900:fix_gpu_surf_perf_test_cpu_part
Vadim Pisarevsky [Mon, 1 Dec 2014 10:37:40 +0000 (10:37 +0000)]
Merge pull request #3467 from Dikay900:fix_gpu_surf_perf_test_cpu_part

9 years agoMerge pull request #3458 from thorikawa:kmeans-index-parallel
Vadim Pisarevsky [Mon, 1 Dec 2014 10:37:23 +0000 (10:37 +0000)]
Merge pull request #3458 from thorikawa:kmeans-index-parallel

9 years agoMerge pull request #3464 from asuwend1:master
Vadim Pisarevsky [Mon, 1 Dec 2014 10:30:49 +0000 (10:30 +0000)]
Merge pull request #3464 from asuwend1:master

9 years agoMerge pull request #3457 from burun:patch-1
Vadim Pisarevsky [Mon, 1 Dec 2014 10:29:51 +0000 (10:29 +0000)]
Merge pull request #3457 from burun:patch-1

9 years agoMerge pull request #3466 from taka-no-me:ctrl_s_win
Vadim Pisarevsky [Mon, 1 Dec 2014 10:26:27 +0000 (10:26 +0000)]
Merge pull request #3466 from taka-no-me:ctrl_s_win

9 years agofix gpu sample performance test cpu part
Dikay900 [Sun, 30 Nov 2014 10:48:59 +0000 (11:48 +0100)]
fix gpu sample performance test cpu part

9 years agoMake Ctrl+S open save dialog on Windows
Andrey Kamaev [Sat, 29 Nov 2014 21:43:21 +0000 (00:43 +0300)]
Make Ctrl+S open save dialog on Windows

9 years agobug fix for a crash when input image is small
Ari Suwendi [Sat, 29 Nov 2014 09:57:15 +0000 (01:57 -0800)]
bug fix for a crash when input image is small

9 years agosamples: gpu: fix include of TickMeter
Dikay900 [Fri, 28 Nov 2014 18:19:20 +0000 (19:19 +0100)]
samples: gpu: fix include of TickMeter

9 years agoFix "assignment operator could not be generated" warnings
Takahiro Poly Horikawa [Fri, 28 Nov 2014 10:33:52 +0000 (19:33 +0900)]
Fix "assignment operator could not be generated" warnings

9 years ago- Use cv::Mutex to safely update converged flag
Takahiro Poly Horikawa [Fri, 28 Nov 2014 09:39:49 +0000 (18:39 +0900)]
- Use cv::Mutex to safely update converged flag
- Use cv::AutoBuffer rather than new allocation
- Fix "assignment operator could not be generated" warning

9 years agoMerge pull request #3451 from wangyan42164:ocl_pyrup_unrolled
Alexander Alekhin [Thu, 27 Nov 2014 09:53:36 +0000 (09:53 +0000)]
Merge pull request #3451 from wangyan42164:ocl_pyrup_unrolled

9 years agoParallize building kmeans index in flann
Takahiro Poly Horikawa [Thu, 27 Nov 2014 07:29:05 +0000 (16:29 +0900)]
Parallize building kmeans index in flann

9 years agoUpdate py_colorspaces.rst
burun [Thu, 27 Nov 2014 07:00:40 +0000 (09:00 +0200)]
Update py_colorspaces.rst

mask = cv2.inRange(hsv, lower_green, upper_green)
to
mask = cv2.inRange(hsv, lower_blue, upper_blue)

9 years agoUpdated Documentation (HoughCircles)
HelenWong [Mon, 24 Nov 2014 21:08:04 +0000 (13:08 -0800)]
Updated Documentation (HoughCircles)

Rewrite the note on HoughCircles documentation to make it more clear

Add note to clarify that the output vector of found circles is sorted by
descending order of centres accumulator values.

Also delete reductant lines on the HoughCircles documentation.

Added comments to hough circles function.

Added comments to icvhoughgradient

Misalignment in line 1183 corrected

9 years agoFix incorrect size computation
Dmitry-Me [Wed, 26 Nov 2014 09:24:53 +0000 (12:24 +0300)]
Fix incorrect size computation

9 years agoOptimize pyrUp_unrolled() by mad function.
Yan Wang [Wed, 26 Nov 2014 08:55:08 +0000 (16:55 +0800)]
Optimize pyrUp_unrolled() by mad function.

It could improve performance when image size is large.
E.g. OCL_PyrUpFixture_PyrUp.PyrUp/18

9 years agoFix compilation when building without the Video I/O module.
Pat O'Keefe [Tue, 25 Nov 2014 18:52:07 +0000 (13:52 -0500)]
Fix compilation when building without the Video I/O module.

9 years agoMerge pull request #3435 from oresths:filter_anchor_fix
Vadim Pisarevsky [Mon, 24 Nov 2014 09:38:42 +0000 (09:38 +0000)]
Merge pull request #3435 from oresths:filter_anchor_fix

9 years agoMerge pull request #3436 from oresths:compiler_option
Vadim Pisarevsky [Mon, 24 Nov 2014 09:37:27 +0000 (09:37 +0000)]
Merge pull request #3436 from oresths:compiler_option

9 years agoRemove redundant -mfpu=neon flag.
orestis [Wed, 19 Nov 2014 21:26:36 +0000 (23:26 +0200)]
Remove redundant -mfpu=neon flag.

This flag is already added in line 131.

9 years agoFix anchor for small symmetrical column filters.
orestis [Wed, 19 Nov 2014 21:12:58 +0000 (23:12 +0200)]
Fix anchor for small symmetrical column filters.

In the unoptimized version of small symmetrical column filters, when we
try to detect if the kernel, ky, is equal to [1;2;1] or [1;-2;1] we
should take into consideration that the anchor points in the middle
element.

9 years agoMerge pull request #3409 from fish2000:patch-1
Vadim Pisarevsky [Wed, 19 Nov 2014 16:25:36 +0000 (16:25 +0000)]
Merge pull request #3409 from fish2000:patch-1

9 years agoMerge pull request #3411 from eltermann:master
Vadim Pisarevsky [Wed, 19 Nov 2014 16:25:11 +0000 (16:25 +0000)]
Merge pull request #3411 from eltermann:master

9 years agoMerge pull request #3432 from taka-no-me:wintitle
Vadim Pisarevsky [Wed, 19 Nov 2014 16:23:52 +0000 (16:23 +0000)]
Merge pull request #3432 from taka-no-me:wintitle

9 years agoAdd cv::setWindowTitle to highgui
Andrey Kamaev [Mon, 17 Nov 2014 23:27:02 +0000 (02:27 +0300)]
Add cv::setWindowTitle to highgui

9 years agosilence cmake 3.0+ warnings on LOCATION attribute
Andrey Kamaev [Tue, 18 Nov 2014 12:39:59 +0000 (15:39 +0300)]
silence cmake 3.0+ warnings on LOCATION attribute

9 years agoDocumenting imgproc module
Maksim Shabunin [Thu, 13 Nov 2014 11:34:04 +0000 (14:34 +0300)]
Documenting imgproc module

- disabled doxygen tree
- enabled doxygen enum listing
- added imgproc reference to main page
- enabled BiB support
- chenged doxygen root page format

9 years agoMerge pull request #3431 from PhilLab:patch-3
Vadim Pisarevsky [Mon, 17 Nov 2014 13:39:45 +0000 (13:39 +0000)]
Merge pull request #3431 from PhilLab:patch-3

9 years agoTypos in CMake
Philipp Hasper [Mon, 17 Nov 2014 09:43:06 +0000 (10:43 +0100)]
Typos in CMake

9 years agoMerge pull request #3424 from dsjolie:daniel
Vadim Pisarevsky [Sun, 16 Nov 2014 18:10:00 +0000 (18:10 +0000)]
Merge pull request #3424 from dsjolie:daniel

9 years agoMerge pull request #3422 from avdmitry:install_doc_update
Vadim Pisarevsky [Sun, 16 Nov 2014 18:08:34 +0000 (18:08 +0000)]
Merge pull request #3422 from avdmitry:install_doc_update

9 years agoFixed variable name consistency
Daniel Angelov [Fri, 14 Nov 2014 22:49:22 +0000 (22:49 +0000)]
Fixed variable name consistency

The function parameters were different from the ones described below.

P.S. Why is ``flow`` InputOutputArray, shouldn't it be just OutputArray? If so, shouldn't the reason be specified - e.g. so others can benefit as well (e.g. not allocating memory on every frame?)

9 years agoMerge remote-tracking branch 'upstream/master' into daniel
Daniel Sjölie [Wed, 5 Nov 2014 14:00:10 +0000 (15:00 +0100)]
Merge remote-tracking branch 'upstream/master' into daniel

9 years agoupdated linux installation documentation
Dmitriy Anisimov [Fri, 14 Nov 2014 09:32:42 +0000 (12:32 +0300)]
updated linux installation documentation

9 years agoMerge pull request #3399 from mshabunin:doxygen-core
Vadim Pisarevsky [Thu, 13 Nov 2014 07:25:26 +0000 (07:25 +0000)]
Merge pull request #3399 from mshabunin:doxygen-core

9 years agoMerge pull request #3415 from jet47:fix-gpu-perf-sample
Vadim Pisarevsky [Thu, 13 Nov 2014 07:21:02 +0000 (07:21 +0000)]
Merge pull request #3415 from jet47:fix-gpu-perf-sample

9 years agoMerge pull request #3413 from wangyan42164:denoising_opencl_improvement
Alexander Alekhin [Thu, 13 Nov 2014 01:47:01 +0000 (01:47 +0000)]
Merge pull request #3413 from wangyan42164:denoising_opencl_improvement

9 years agofix gpu performance sample compilation
Vladislav Vinogradov [Wed, 12 Nov 2014 15:06:47 +0000 (18:06 +0300)]
fix gpu performance sample compilation

9 years agoImprove the performance of fast_nlmeans_denoising_opencl.
Yan Wang [Wed, 12 Nov 2014 10:47:48 +0000 (18:47 +0800)]
Improve the performance of fast_nlmeans_denoising_opencl.

1. Remove unnecessary barriers.
2. Adjust CTA_SIZE based on the following cases for Intel platform:
   a) OCL_Photo_DenoisingGrayscale.DenoisingGrayscale
   b) OCL_Photo_DenoisingColored.DenoisingColored

9 years agoMerge pull request #3406 from shiquanwang:Fix-bug-#4003_build-python-binding-under...
Vadim Pisarevsky [Wed, 12 Nov 2014 11:26:19 +0000 (11:26 +0000)]
Merge pull request #3406 from shiquanwang:Fix-bug-#4003_build-python-binding-under-python3

9 years agoDoxygen documentation for core module
Maksim Shabunin [Fri, 31 Oct 2014 15:09:19 +0000 (18:09 +0300)]
Doxygen documentation for core module

9 years agoMerge pull request #3407 from wangyan42164:canny_bug_fix
Vadim Pisarevsky [Wed, 12 Nov 2014 11:09:55 +0000 (11:09 +0000)]
Merge pull request #3407 from wangyan42164:canny_bug_fix

9 years agoFix canny segment fault (Bug #3978)
Yan Wang [Mon, 10 Nov 2014 07:41:04 +0000 (15:41 +0800)]
Fix canny segment fault (Bug #3978)

Avoid stack overflow based on std::vector cause
std::vector::resize() segmentation fault.

9 years agoMerge pull request #3410 from mgharbi:master
Vadim Pisarevsky [Wed, 12 Nov 2014 08:49:50 +0000 (08:49 +0000)]
Merge pull request #3410 from mgharbi:master

9 years agoDocumentation fix on py_tutorials/py_feature2d
eltermann [Tue, 11 Nov 2014 19:10:33 +0000 (17:10 -0200)]
Documentation fix on py_tutorials/py_feature2d

9 years agoFix Cuda -Wl linker options
Michae Gharbi [Tue, 11 Nov 2014 17:12:28 +0000 (12:12 -0500)]
Fix Cuda -Wl linker options

This line causes the following error when building custom projects that use OpenCV beta 3:
ld: warning: directory not found for option '-L/<project_root>/-Wl,/usr/local/cuda'

9 years agoMerge pull request #3408 from ilya-lavrenov:doc_fix
Vadim Pisarevsky [Tue, 11 Nov 2014 13:29:46 +0000 (13:29 +0000)]
Merge pull request #3408 from ilya-lavrenov:doc_fix

9 years agoFixed OS X compilation error in window_cocoa.mm
Alexander Bohn / FI$H2k [Tue, 11 Nov 2014 12:35:35 +0000 (04:35 -0800)]
Fixed OS X compilation error in window_cocoa.mm

Un-commented `NSApplicationActivationPolicyRegular` argument (in leu of zero) and got rid of problematic dereference

9 years agofixed doc
Ilya Lavrenov [Mon, 10 Nov 2014 13:19:27 +0000 (16:19 +0300)]
fixed doc

9 years agoMod: Open header files with `io.open` for Python 2/3 compatibility.
Shiquan Wang [Mon, 10 Nov 2014 05:39:18 +0000 (13:39 +0800)]
Mod: Open header files with `io.open` for Python 2/3 compatibility.

9 years agoMerge tag '3.0.0-beta'
Alexander Alekhin [Mon, 10 Nov 2014 11:42:47 +0000 (14:42 +0300)]
Merge tag '3.0.0-beta'

OpenCV 3.0.0 Beta

9 years agoMerge pull request #3405 from D-Alex:master
Vadim Pisarevsky [Mon, 10 Nov 2014 08:19:29 +0000 (08:19 +0000)]
Merge pull request #3405 from D-Alex:master

9 years agoMerge pull request #3404 from alalek:openni2_patch
Vadim Pisarevsky [Mon, 10 Nov 2014 08:09:45 +0000 (08:09 +0000)]
Merge pull request #3404 from alalek:openni2_patch

9 years agosolvePnPRansac: fix mask generation
Alexander Duda [Sun, 9 Nov 2014 22:10:43 +0000 (23:10 +0100)]
solvePnPRansac: fix mask generation

9 years agoPnPRansacCallback::computeError: fix count in case of Nx3 matrices
Alexander Duda [Sun, 9 Nov 2014 22:08:47 +0000 (23:08 +0100)]
PnPRansacCallback::computeError: fix count in case of Nx3 matrices

9 years agoopenni_capture sample: enable OpenNI2 if available
Alexander Alekhin [Fri, 7 Nov 2014 23:22:17 +0000 (02:22 +0300)]
openni_capture sample: enable OpenNI2 if available

Sample works with OpenNI2 with minimal code changes (CAP_OPENNI -> CAP_OPENNI2)

9 years agoOpenNI2: prevent failure of setVideoMode() call with invalid parameters
Alexander Alekhin [Fri, 7 Nov 2014 23:21:59 +0000 (02:21 +0300)]
OpenNI2: prevent failure of setVideoMode() call with invalid parameters

Not all parameters are specified for openni::VideoMode, so
"selected" mode can be unsupported for device.
Replace default VideoMode constructor to result of getVideoMode() call.

9 years agoSet status to beta
Alexander Alekhin [Fri, 7 Nov 2014 16:22:46 +0000 (19:22 +0300)]
Set status to beta

9 years agoMerge pull request #3403 from vpisarev:moved_partition
Vadim Pisarevsky [Fri, 7 Nov 2014 16:04:56 +0000 (16:04 +0000)]
Merge pull request #3403 from vpisarev:moved_partition

9 years agomoved cv::partition from private.hpp to operations.hpp, to expose the function to...
Vadim Pisarevsky [Fri, 7 Nov 2014 15:14:39 +0000 (18:14 +0300)]
moved cv::partition from private.hpp to operations.hpp, to expose the function to users

9 years agoMerge pull request #3402 from vpisarev:fixed_python_tests
Vadim Pisarevsky [Fri, 7 Nov 2014 14:34:14 +0000 (14:34 +0000)]
Merge pull request #3402 from vpisarev:fixed_python_tests

9 years agofixed path to the checkerboard image
Vadim Pisarevsky [Fri, 7 Nov 2014 12:57:42 +0000 (15:57 +0300)]
fixed path to the checkerboard image

9 years agoMerge pull request #3400 from vpisarev:fixed_umat_test_crash
Vadim Pisarevsky [Fri, 7 Nov 2014 12:50:26 +0000 (12:50 +0000)]
Merge pull request #3400 from vpisarev:fixed_umat_test_crash

9 years agoMerge pull request #3394 from akarsakov:ocl_canny
Alexander Alekhin [Fri, 7 Nov 2014 12:42:24 +0000 (12:42 +0000)]
Merge pull request #3394 from akarsakov:ocl_canny

9 years agoMerge pull request #3357 from briansp2020:master
Vadim Pisarevsky [Fri, 7 Nov 2014 12:02:53 +0000 (12:02 +0000)]
Merge pull request #3357 from briansp2020:master

9 years agoMerge pull request #3392 from wangyan42164:houghlines_bug_fix
Vadim Pisarevsky [Fri, 7 Nov 2014 11:52:58 +0000 (11:52 +0000)]
Merge pull request #3392 from wangyan42164:houghlines_bug_fix

9 years agoMerge pull request #3397 from ElenaGvozdeva:ocl_WarpAffine_test
Vadim Pisarevsky [Fri, 7 Nov 2014 11:52:35 +0000 (11:52 +0000)]
Merge pull request #3397 from ElenaGvozdeva:ocl_WarpAffine_test

9 years agofixed my_umat(roi).clone() test by disabling poorly aligned ROI's. Real fix of the...
Vadim Pisarevsky [Fri, 7 Nov 2014 11:49:48 +0000 (14:49 +0300)]
fixed my_umat(roi).clone() test by disabling poorly aligned ROI's. Real fix of the problem will require a separate branch in UMat::copyTo().

9 years agoFix HoughLines crashes (Bug #3959).
Yan Wang [Thu, 6 Nov 2014 04:46:04 +0000 (12:46 +0800)]
Fix HoughLines crashes (Bug #3959).

Avoid phi exceed PI/2 to get the negative value of cos(phi).

9 years agoCorrectly unrolled some cycles
Alexander Karsakov [Fri, 7 Nov 2014 08:19:34 +0000 (11:19 +0300)]
Correctly unrolled some cycles

10 years agoMerge pull request #3138 from alalek:icv_update
Alexander Alekhin [Thu, 6 Nov 2014 15:58:14 +0000 (15:58 +0000)]
Merge pull request #3138 from alalek:icv_update

10 years agoMerge pull request #3396 from akarsakov:ocl_pow_fix
Alexander Alekhin [Thu, 6 Nov 2014 15:49:42 +0000 (15:49 +0000)]
Merge pull request #3396 from akarsakov:ocl_pow_fix

10 years agofixed test for ocl WarpAffine
ElenaGvozdeva [Wed, 5 Nov 2014 13:28:43 +0000 (16:28 +0300)]
fixed test for ocl WarpAffine

10 years agoRemoved incorrect using of rootn() and powr() in ocl_pow
Alexander Karsakov [Thu, 6 Nov 2014 13:23:02 +0000 (16:23 +0300)]
Removed incorrect using of rootn() and powr() in ocl_pow

10 years agoMinor optimization for ocl_canny
Alexander Karsakov [Thu, 6 Nov 2014 10:07:33 +0000 (13:07 +0300)]
Minor optimization for ocl_canny

10 years agoMerge pull request #3372 from pokeefe:add-test-for-projection-decomposition
Vadim Pisarevsky [Thu, 6 Nov 2014 08:40:35 +0000 (08:40 +0000)]
Merge pull request #3372 from pokeefe:add-test-for-projection-decomposition