Commit Graph

26711 Commits

Author SHA1 Message Date
Vadim Pisarevsky
a9d77b5c64 Merge pull request #12966 from catree:fix_distortion_image 2018-10-29 11:27:49 +00:00
Vadim Pisarevsky
65ab6ed59f Merge pull request #12980 from LaurentBerger:copyToPy 2018-10-29 11:22:20 +00:00
Vadim Pisarevsky
7767352572 Merge pull request #12975 from allnes:fix_russian_test 2018-10-29 11:14:17 +00:00
Alexander Nesterov
aba66352dd Fix dataset: russian.jpg 2018-10-29 10:30:49 -01:00
LaurentBerger
389aae59ae add python copyto with mask (https://github.com/opencv/opencv/issues/10225) 2018-10-29 09:09:30 +01:00
Wenfeng CAI
c9abb823a7 Fix signature of static collectCalibrationData()
This is a fix to the signature of static function
collectCalibrationData() and clean-up for #12772. Since fallback scheme
in calibration method selection is not used anymore. As an input
parameter, iFixedPoint should be passed by value according to the OpenCV
coding style guide.
2018-10-29 10:19:02 +08:00
Alexander Alekhin
6c444ced08 Merge pull request #12954 from seanm:MinorMac 2018-10-28 14:52:32 +00:00
Alexander Alekhin
4e633d1f78 Merge pull request #12967 from catree:add_tutorial_video_java_python 2018-10-27 17:04:49 +00:00
AsyaPronina
e6dd9a78ae Merge pull request #12947 from AsyaPronina:sobel_renaming
* Renamed Sobel operator GAPI kernel to match with OpenCV naming rules

* Fixed perf tests

* Small refactoring to check CI issue

* Refactored alignment for kernel wrappers in imgproc.hpp
2018-10-27 19:54:32 +03:00
Alexander Alekhin
012f36e47d Merge pull request #12958 from kamino410:doc_dist_param 2018-10-27 16:28:57 +00:00
root
1196eb33fc remove non-ideal pairs when using crosscheck in batchdistance 2018-10-26 20:25:24 +00:00
catree
4bea70a64a Update background subtraction tutorial with Java and Python codes. 2018-10-26 22:17:18 +02:00
catree
d37164bab6 Fix distortion figure in calib3d. Positive radial distortion corresponds to pincushion distortion and negative to barrel distortion. Add another figure that illustrates the influence of k1 in the distortion effect. 2018-10-26 20:27:37 +02:00
Alexander Alekhin
e0c888acf7 Merge pull request #12952 from seanm:fix12933 2018-10-26 18:27:27 +00:00
Alexander Alekhin
cc2f8f1778 Merge pull request #12946 from HenryDev:patch-1 2018-10-26 18:26:06 +00:00
Rostislav Vasilikhin
daff6e6484 _mm256_zeroupper replaced by zeroall 2018-10-26 18:12:07 +03:00
Alexander Alekhin
50bec53afc Merge remote-tracking branch 'upstream/3.4' into merge-3.4 2018-10-26 17:56:55 +03:00
Alexander Alekhin
eea0f7fd76 Merge pull request #12960 from alalek:workaround_ipp_sse42_meanstddev 2018-10-26 14:50:49 +00:00
Alexander Alekhin
3e0c72ea84 core(ipp): disable SSE4.2 meanStdDev() optimization for CV_32F 2018-10-26 15:57:26 +03:00
kamino410
3972c526ce fix document about camera distortion parameters 2018-10-26 19:55:46 +09:00
Sean McBride
75f67ed207 Fixed a few comments related to macOS support 2018-10-25 15:16:55 -04:00
Sean McBride
828091cfbb Fixed #12933: added cast to silence clang -Wcomma warning 2018-10-25 13:27:17 -04:00
wanghanmin
eb981cc7d7 Merge pull request #12138 from wanghanmin:wanghanmin-patch-videoio_crossbarsetting-1
* Update videoio.hpp

add VideoCapturePropertie for clossbar input pin setting

* Update cap_dshow.cpp

For some kind of capture card, such as "avermedia cv710 " , it use SerialDigital as input pin and so it can not work.
Here added new PhysicalConnectorType enumeration: PhysConn_Video_YRYBY and PhysConn_Video_SerialDigital to support it.
And also provide new property parameter CAP_CROSSBAR_INPIN_TYPE to set the crossbar input pin type which will be used in videoInput::start(int deviceID, videoDevice *VD):
" if(VD->useCrossbar)
    {
        DebugPrintOut("SETUP: Checking crossbar\n");
        routeCrossbar(&VD->pCaptureGraph, &VD->pVideoInputFilter, VD->connection, CAPTURE_MODE);

    }
"

And at last ,fixed one issue for function setSizeAndSubtype, added code 
pVih->rcSource.top = pVih->rcSource.left = pVih->rcTarget.top =pVih->rcTarget.left=0;
pVih->rcSource.right = pVih->rcTarget.right= attemptWidth;
pVih->rcSource.bottom = pVih->rcTarget.bottom = attemptHeight;

without these code , rcSource and rcTarget will keeping use default resolution and cause fail in hr = VD->streamConf->SetFormat(VD->pAmMediaType) and cannot find suitable MediaType.

Tested with python3 and mfc (Avermedia cv710)
Python3 code:
import cv2
print("test cv")
cap=cv2.VideoCapture(0)
cap.set(5,60)
cap.set(3,1920)
cap.set(4,1080)
cap.set(31,6)


ret,img=cap.read()
cv2.namedWindow("cap",cv2.WINDOW_NORMAL)
cv2.resizeWindow("cap",960,640);
while True:
    ret,img=cap.read()
    if ret==False:
        continue
    cv2.imshow("cap",img)
    if cv2.waitKey(1) & 0xFF == ord('q'):
        break
cap.release()

cv2.destroyAllWindows()

MFC code:
void CcvtestDlg::OnBnClickedButton1()
{
VideoCapture cap(0);
cap.set(CAP_PROP_FRAME_WIDTH, 1920);
cap.set(CAP_PROP_FRAME_HEIGHT, 1080);

cap.set(CAP_CROSSBAR_INPIN_TYPE , 6);
Mat img;
namedWindow("test", WINDOW_NORMAL);
resizeWindow("test", 960, 640);
while (1)
{
if (cap.read(img))
{
imshow("test", img);
if ('q' ==waitKey(1))
break;
}
}
destroyAllWindows();
cap.release();
}

* Update cap_dshow.cpp

* Update videoio.hpp

move enum value of CAP_CROSSBAR_INPIN_TYPE to the end of list

* Update videoio.hpp

* Update cap_dshow.cpp

removed trailing whitespace

* Update test_camera.cpp

Add test for capture device using PhysConn_Video_SerialDigital as crossbar input pin

* Update test_camera.cpp

Correction of misunderstanding about how to add test case.
2018-10-25 19:41:37 +03:00
Wenfeng CAI
31be03a805 Merge pull request #12772 from xoox:calib-release-object
More accurate pinhole camera calibration with imperfect planar target (#12772)
43 commits:

* Add derivatives with respect to object points

Add an output parameter to calculate derivatives of image points with
respect to 3D coordinates of object points. The output jacobian matrix
is a 2Nx3N matrix where N is the number of points.

This commit introduces incompatibility to old function signature.

* Set zero for dpdo matrix before using

dpdo is a sparse matrix with only non-zero value close to major
diagonal. Set it to zero because only elements near major diagonal are
computed.

* Add jacobian columns to projectPoints()

The output jacobian matrix of derivatives with respect to coordinates of
3D object points are added. This might break callers who assume the
columns of jacobian matrix.

* Adapt test code to updated project functions

The test cases for projectPoints() and cvProjectPoints2() are updated to
fit new function signatures.

* Add accuracy test code for dpdo

* Add badarg test for dpdo

* Add new enum item for new calibration method

CALIB_RELEASE_OBJECT is used to whether to release 3D coordinates of
object points. The method was proposed in: K. H. Strobl and G. Hirzinger.
"More Accurate Pinhole Camera Calibration with Imperfect Planar Target".
In Proceedings of the IEEE International Conference on Computer Vision
(ICCV 2011), 1st IEEE Workshop on Challenges and Opportunities in Robot
Perception, Barcelona, Spain, pp. 1068-1075, November 2011.

* Add releasing object method into internal function

It's a simple extension of the standard calibration scheme. We choose to
fix the first and last object point and a user-selected fixed point.

* Add interfaces for extended calibration method

* Refine document for calibrateCamera()

When releasing object points, only the z coordinates of the
objectPoints[0].back is fixed.

* Add link to strobl2011iccv paper

* Improve documentation for calibrateCamera()

* Add implementations of wrapping calibrateCamera()

* Add checking for params of new calibration method

If input parameters are not qualified, then fall back to standard
calibration method.

* Add camera calibration method of releasing object

The current implementation is equal to or better than
https://github.com/xoox/calibrel

* Update doc for CALIB_RELEASE_OBJECT

CALIB_USE_QR or CALIB_USE_LU could be used for faster calibration with
potentially less precise and less stable in some rare cases.

* Add RELEASE_OBJECT calibration to tutorial code

To select the calibration method of releasing object points, a command
line parameter `-d=<number>` should be provided.

* Update tutorial doc for camera_calibration

If the method of releasing object points is merged into OpenCV. It will
be expected to be firstly released in 4.1, I think.

* Reduce epsilon for cornerSubPix()

Epsilon of 0.1 is a bigger one. Preciser corner positions are required
with calibration method of releasing object.

* Refine camera calibration tutorial

The hypothesis coordinates are used to indicate which distance must be
measured between two specified object points.

* Update sample calibration code method selection

Similar to camera_calibration tutorial application, a command line
argument `-dt=<number>` is used to select the calibration method.

* Add guard to flags of cvCalibrateCamera2()

cvCalibrateCamera2() doesn't accept CALIB_RELEASE_OBJECT unless overload
interface is added in the future.

* Simplify fallback when iFixedPoint is out of range

* Refactor projectPoints() to keep compatibilities

* Fix arg string "Bad rvecs header"

* Read calibration flags from test data files

Instead of being hard coded into source file, the calibration flags will
be read from test data files.
opencv_extra/testdata/cv/cameracalibration/calib?.dat must be sync with
the test code.

* Add new C interface of cvCalibrateCamera4()

With this new added C interface, the extended calibration method with
CALIB_RELEASE_OBJECT can be called by C API.

* Add regression test of extended calibration method

It has been tested with new added test data in xoox:calib-release-object
branch of opencv_extra.

* Fix assertion in test_cameracalibration.cpp

The total number of refined 3D object coordinates is checked.

* Add checker for iFixedPoint in cvCalibrateCamera4

If iFixedPoint is out of rational range, fall back to standard method.

* Fix documentation for overloaded calibrateCamera()

* Remove calibration flag of CALIB_RELEASE_OBJECT

The method selection is based on the range of the index of fixed point.
For minus values, standard calibration method will be chosen.  Values in
a rational range will make the object-releasing calibration method
selected.

* Use new interfaces instead of function overload

Existing interfaces are preserved and new interfaces are added. Since
most part of the code base are shared, calibrateCamera() is now a
wrapper function of calibrateCameraRO().

* Fix exported name of calibrateCameraRO()

* Update documentation for calibrateCameraRO()

The circumstances where this method is mostly helpful are described.

* Add note on the rigidity of the calibration target

* Update documentation for calibrateCameraRO()

It is clarified that iFixedPoint is used as a switch to select
calibration method. If input data are not qualified, exceptions will be
thrown instead of fallback scheme.

* Clarify iFixedPoint as switch and remove fallback

iFixedPoint is now used as a switch for calibration method selection. No
fallback scheme is utilized anymore. If the input data are not
qualified, exceptions will be thrown.

* Add badarg test for object-releasing method

* Fix document format of sample list

List items of same level should be indented the same way. Otherwise they
will be formatted as nested lists by Doxygen.

* Add brief intro for objectPoints and imagePoints

* Sync tutorial to sample calibration code

* Update tutorial compatibility version to 4.0
2018-10-25 19:38:55 +03:00
catree
644846c702 Add a function that draws frame axes. Useful for debugging purpose and to check the correctness of the output of a pose estimation method. 2018-10-25 18:38:19 +02:00
Alexander Alekhin
defeda2f70 Merge pull request #12905 from tomoaki0705:fixQrcodePeakyFailure 2018-10-25 16:24:56 +00:00
Henry
4102855edd
Update intro.markdown
"as opposed to" is a phrase of opposed meaning distinguished from or in contrast with. e.g., "an approach that is theoretical as opposed to practical"
synonyms: in contrast with, as against, as contrasted with, rather than, instead of, as an alternative to
example: "we use only steam, as opposed to chemical products, to clean our house"
2018-10-25 10:54:07 -05:00
Alexander Alekhin
ca3848d773 Merge pull request #12937 from mshabunin:fix-static-4 2018-10-25 15:15:15 +00:00
Alexander Alekhin
602989ae9e Merge pull request #12935 from alalek:python_so_warning 2018-10-25 15:11:44 +00:00
Alexander Alekhin
88f60113a5 Merge pull request #12804 from alalek:editorconfig 2018-10-25 14:17:42 +00:00
Alexander Alekhin
f50b58b509 Merge pull request #12854 from allnes:detect_qr_code 2018-10-25 14:16:55 +00:00
Alexander Alekhin
223d7cfb38
Merge pull request #12930 from aliyasineser:3.4
Update depth map for python-opencv
2018-10-25 17:12:16 +03:00
Maksim Shabunin
e6d9486a6c Fixed several issues found by static analysis 2018-10-25 16:39:54 +03:00
Maksim Shabunin
9a8e47a766 Version update for OpenVINO 2018-10-25 16:38:30 +03:00
Alexander Alekhin
13f244b6a5 Merge pull request #12927 from alalek:docs_filter_gapi_exports 2018-10-25 11:53:06 +00:00
Alexander Alekhin
7e2c65ce3c Merge pull request #12925 from alalek:fix_cmake_conditions 2018-10-25 11:52:39 +00:00
Alexander Alekhin
b184b19970 Merge pull request #12934 from alalek:issue_12932 2018-10-25 11:28:13 +00:00
Alexander Alekhin
28556f1498 core: move compiler defines from base.hpp into cvdef.h 2018-10-25 14:05:46 +03:00
Alexander Alekhin
55676b7173 Merge pull request #12928 from alalek:fix_typo_3.4 2018-10-25 11:04:59 +00:00
Dmitry Kurtaev
92f754c675 Add methods to reshape Mat in Java by array of shapes and retreive sizes of each dimension. 2018-10-25 10:48:23 +03:00
Maksim Shabunin
0ccd810738 Fixed several issues found by static analysis 2018-10-25 10:45:59 +03:00
Alexander Alekhin
aa6e296236 python: eliminate DeprecationWarning: SO -> EXT_SUFFIX
- https://python.readthedocs.io/en/stable/whatsnew/3.4.html
- The `sysconfig` key `SO` is deprecated, it has been replaced by `EXT_SUFFIX`
2018-10-25 04:23:45 +00:00
Alexander Alekhin
7f608db244 core: move compiler defines from base.hpp into cvdef.h 2018-10-25 03:02:01 +00:00
Alexander Alekhin
d61ad04f11 Merge pull request #12868 from VladKarpushin:tutorial-using-periodic-noise-removing-filter 2018-10-24 20:24:50 +00:00
Ali Yasin Eser
28a14df26c Update depth map for pytho-opencv 2018-10-24 19:29:27 +02:00
Alexander Nesterov
d305fd4fca Added perf tests with sanity check 2018-10-24 16:37:56 +00:00
Alexander Alekhin
8486f1b8f0 Merge pull request #12888 from alalek:cmake_fix_objdetect 2018-10-24 16:22:26 +00:00
Alexander Alekhin
a1bd39441f videoio: fix typo 2018-10-24 19:12:35 +03:00
Alexander Alekhin
e959f449ae Merge pull request #12894 from alalek:c_api_drop_samples 2018-10-24 15:40:04 +00:00
Alexander Alekhin
e4aea680b9 Merge pull request #12922 from alalek:fix_merge_12787 2018-10-24 15:15:13 +00:00