@@ -2,25 +2,52 @@ if(NOT WITH_VTK OR ANDROID OR IOS)
...
@@ -2,25 +2,52 @@ if(NOT WITH_VTK OR ANDROID OR IOS)
return()
return()
endif()
endif()
if(HAVE_QT5)
# VTK 6.x components
message(STATUS "VTK is disabled because OpenCV is linked with Q5. Some VTK disributives are compiled with Q4 and therefore can't be linked together Qt5.")
message(STATUS "VTK support is disabled. Incompatible combination: OpenCV + Qt5 and VTK ver.${VTK_VERSION} + Qt4")
set(HAVE_VTK OFF)
return()
message(STATUS "VTK is not found. Please set -DVTK_DIR in CMake to VTK build directory, or set $VTK_DIR enviroment variable to VTK install subdirectory with VTKConfig.cmake file (for windows)")
endif()
if(NOT HAVE_QT5 AND ${VTK_QT_VERSION} EQUAL "5")
message(STATUS "VTK support is disabled. Incompatible combination: OpenCV + Qt4 and VTK ver.${VTK_VERSION} + Qt5")
@@ -1615,7 +1615,7 @@ Copies the matrix to another one.
...
@@ -1615,7 +1615,7 @@ Copies the matrix to another one.
The method copies the matrix data to another matrix. Before copying the data, the method invokes ::
The method copies the matrix data to another matrix. Before copying the data, the method invokes ::
m.create(this->size(), this->type);
m.create(this->size(), this->type());
so that the destination matrix is reallocated if needed. While ``m.copyTo(m);`` works flawlessly, the function does not handle the case of a partial overlap between the source and the destination matrices.
so that the destination matrix is reallocated if needed. While ``m.copyTo(m);`` works flawlessly, the function does not handle the case of a partial overlap between the source and the destination matrices.
...
@@ -1710,7 +1710,7 @@ Transposes a matrix.
...
@@ -1710,7 +1710,7 @@ Transposes a matrix.
The method performs matrix transposition by means of matrix expressions. It does not perform the actual transposition but returns a temporary matrix transposition object that can be further used as a part of more complex matrix expressions or can be assigned to a matrix: ::
The method performs matrix transposition by means of matrix expressions. It does not perform the actual transposition but returns a temporary matrix transposition object that can be further used as a part of more complex matrix expressions or can be assigned to a matrix: ::
Mat A1 = A + Mat::eye(A.size(), A.type)*lambda;
Mat A1 = A + Mat::eye(A.size(), A.type())*lambda;
Mat C = A1.t()*A1; // compute (A + lambda*I)^t * (A + lamda*I)
Mat C = A1.t()*A1; // compute (A + lambda*I)^t * (A + lamda*I)
@@ -965,6 +967,12 @@ Adds a cloud to the collection.
...
@@ -965,6 +967,12 @@ Adds a cloud to the collection.
.. note:: In case there are four channels in the cloud, fourth channel is ignored.
.. note:: In case there are four channels in the cloud, fourth channel is ignored.
viz::WCloudCollection::finalize
-------------------------------
Finalizes cloud data by repacking to single cloud. Useful for large cloud collections to reduce memory usage
.. ocv:function:: void finalize()
viz::WCloudNormals
viz::WCloudNormals
------------------
------------------
.. ocv:class:: WCloudNormals
.. ocv:class:: WCloudNormals
...
@@ -1018,3 +1026,43 @@ Constructs a WMesh.
...
@@ -1018,3 +1026,43 @@ Constructs a WMesh.
:param polygons: Points of the mesh object.
:param polygons: Points of the mesh object.
:param colors: Point colors.
:param colors: Point colors.
:param normals: Point normals.
:param normals: Point normals.
viz::WWidgetMerger
---------------------
.. ocv:class:: WWidgetMerger
This class allows to merge several widgets to single one. It has quite limited functionality and can't merge widgets with different attributes. For instance,
if widgetA has color array and widgetB has only global color defined, then result of merge won't have color at all. The class is suitable for merging large amount of similar widgets. ::
class CV_EXPORTS WWidgetMerger : public Widget3D
{
public:
WWidgetMerger();
//! Add widget to merge with optional position change