mirror of
https://github.com/opencv/opencv.git
synced 2025-07-25 22:57:53 +08:00
Fix minor errors in the first documentation page (Introduction)
This markdown file corresponds to the first link on the landing page of OpenCV documentation.
This commit is contained in:
parent
6234f01a6d
commit
9faefa0c96
@ -71,7 +71,7 @@ data sharing. A destructor decrements the reference counter associated with the
|
|||||||
The buffer is deallocated if and only if the reference counter reaches zero, that is, when no other
|
The buffer is deallocated if and only if the reference counter reaches zero, that is, when no other
|
||||||
structures refer to the same buffer. Similarly, when a Mat instance is copied, no actual data is
|
structures refer to the same buffer. Similarly, when a Mat instance is copied, no actual data is
|
||||||
really copied. Instead, the reference counter is incremented to memorize that there is another owner
|
really copied. Instead, the reference counter is incremented to memorize that there is another owner
|
||||||
of the same data. There is also the Mat::clone method that creates a full copy of the matrix data.
|
of the same data. There is also the cv::Mat::clone method that creates a full copy of the matrix data.
|
||||||
See the example below:
|
See the example below:
|
||||||
```.cpp
|
```.cpp
|
||||||
// create a big 8Mb matrix
|
// create a big 8Mb matrix
|
||||||
@ -159,11 +159,11 @@ grayscale conversion. Note that frame and edges are allocated only once during t
|
|||||||
of the loop body since all the next video frames have the same resolution. If you somehow change the
|
of the loop body since all the next video frames have the same resolution. If you somehow change the
|
||||||
video resolution, the arrays are automatically reallocated.
|
video resolution, the arrays are automatically reallocated.
|
||||||
|
|
||||||
The key component of this technology is the Mat::create method. It takes the desired array size and
|
The key component of this technology is the cv::Mat::create method. It takes the desired array size
|
||||||
type. If the array already has the specified size and type, the method does nothing. Otherwise, it
|
and type. If the array already has the specified size and type, the method does nothing. Otherwise,
|
||||||
releases the previously allocated data, if any (this part involves decrementing the reference
|
it releases the previously allocated data, if any (this part involves decrementing the reference
|
||||||
counter and comparing it with zero), and then allocates a new buffer of the required size. Most
|
counter and comparing it with zero), and then allocates a new buffer of the required size. Most
|
||||||
functions call the Mat::create method for each output array, and so the automatic output data
|
functions call the cv::Mat::create method for each output array, and so the automatic output data
|
||||||
allocation is implemented.
|
allocation is implemented.
|
||||||
|
|
||||||
Some notable exceptions from this scheme are cv::mixChannels, cv::RNG::fill, and a few other
|
Some notable exceptions from this scheme are cv::mixChannels, cv::RNG::fill, and a few other
|
||||||
@ -247,9 +247,9 @@ Examples:
|
|||||||
// matrix (10-element complex vector)
|
// matrix (10-element complex vector)
|
||||||
Mat img(Size(1920, 1080), CV_8UC3); // make a 3-channel (color) image
|
Mat img(Size(1920, 1080), CV_8UC3); // make a 3-channel (color) image
|
||||||
// of 1920 columns and 1080 rows.
|
// of 1920 columns and 1080 rows.
|
||||||
Mat grayscale(image.size(), CV_MAKETYPE(image.depth(), 1)); // make a 1-channel image of
|
Mat grayscale(img.size(), CV_MAKETYPE(img.depth(), 1)); // make a 1-channel image of
|
||||||
// the same size and same
|
// the same size and same
|
||||||
// channel type as img
|
// channel type as img
|
||||||
```
|
```
|
||||||
Arrays with more complex elements cannot be constructed or processed using OpenCV. Furthermore, each
|
Arrays with more complex elements cannot be constructed or processed using OpenCV. Furthermore, each
|
||||||
function or method can handle only a subset of all possible array types. Usually, the more complex
|
function or method can handle only a subset of all possible array types. Usually, the more complex
|
||||||
@ -269,14 +269,14 @@ extended in future based on user requests.
|
|||||||
### InputArray and OutputArray
|
### InputArray and OutputArray
|
||||||
|
|
||||||
Many OpenCV functions process dense 2-dimensional or multi-dimensional numerical arrays. Usually,
|
Many OpenCV functions process dense 2-dimensional or multi-dimensional numerical arrays. Usually,
|
||||||
such functions take cppMat as parameters, but in some cases it's more convenient to use
|
such functions take `cv::Mat` as parameters, but in some cases it's more convenient to use
|
||||||
`std::vector<>` (for a point set, for example) or `cv::Matx<>` (for 3x3 homography matrix and such). To
|
`std::vector<>` (for a point set, for example) or `cv::Matx<>` (for 3x3 homography matrix and such). To
|
||||||
avoid many duplicates in the API, special "proxy" classes have been introduced. The base "proxy"
|
avoid many duplicates in the API, special "proxy" classes have been introduced. The base "proxy"
|
||||||
class is cv::InputArray. It is used for passing read-only arrays on a function input. The derived from
|
class is cv::InputArray. It is used for passing read-only arrays on a function input. The derived from
|
||||||
InputArray class cv::OutputArray is used to specify an output array for a function. Normally, you should
|
InputArray class cv::OutputArray is used to specify an output array for a function. Normally, you should
|
||||||
not care of those intermediate types (and you should not declare variables of those types
|
not care of those intermediate types (and you should not declare variables of those types
|
||||||
explicitly) - it will all just work automatically. You can assume that instead of
|
explicitly) - it will all just work automatically. You can assume that instead of
|
||||||
InputArray/OutputArray you can always use `Mat`, `std::vector<>`, `cv::Matx<>`, `cv::Vec<>` or `cv::Scalar`. When a
|
InputArray/OutputArray you can always use `cv::Mat`, `std::vector<>`, `cv::Matx<>`, `cv::Vec<>` or `cv::Scalar`. When a
|
||||||
function has an optional input or output array, and you do not have or do not want one, pass
|
function has an optional input or output array, and you do not have or do not want one, pass
|
||||||
cv::noArray().
|
cv::noArray().
|
||||||
|
|
||||||
@ -288,7 +288,7 @@ the optimization algorithm did not converge), it returns a special error code (t
|
|||||||
boolean variable).
|
boolean variable).
|
||||||
|
|
||||||
The exceptions can be instances of the cv::Exception class or its derivatives. In its turn,
|
The exceptions can be instances of the cv::Exception class or its derivatives. In its turn,
|
||||||
cv::Exception is a derivative of std::exception. So it can be gracefully handled in the code using
|
cv::Exception is a derivative of `std::exception`. So it can be gracefully handled in the code using
|
||||||
other standard C++ library components.
|
other standard C++ library components.
|
||||||
|
|
||||||
The exception is typically thrown either using the `#CV_Error(errcode, description)` macro, or its
|
The exception is typically thrown either using the `#CV_Error(errcode, description)` macro, or its
|
||||||
@ -297,7 +297,7 @@ printf-like `#CV_Error_(errcode, (printf-spec, printf-args))` variant, or using
|
|||||||
satisfied. For performance-critical code, there is #CV_DbgAssert(condition) that is only retained in
|
satisfied. For performance-critical code, there is #CV_DbgAssert(condition) that is only retained in
|
||||||
the Debug configuration. Due to the automatic memory management, all the intermediate buffers are
|
the Debug configuration. Due to the automatic memory management, all the intermediate buffers are
|
||||||
automatically deallocated in case of a sudden error. You only need to add a try statement to catch
|
automatically deallocated in case of a sudden error. You only need to add a try statement to catch
|
||||||
exceptions, if needed: :
|
exceptions, if needed:
|
||||||
```.cpp
|
```.cpp
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
|
Loading…
Reference in New Issue
Block a user