/
Memory Management
Memory Management
About
Memory management of mat objects across the opencv api.
Construction
Resources
- http://docs.opencv.org/modules/core/doc/basic_structures.html#mat
- http://docs.opencv.org/modules/core/doc/basic_structures.html#mat-mat
Examples
# Internally allocated cv::Mat image(rows, cols, CV_8U); std::vector<unsigned char> image_buffer; // add some stuff to image buffer cv::Mat image(image_buffer, true); // second variable is copyData=true # Externally Allocated - I std::vector<unsigned char> memory; memory.reserve(rows*cols); cv::Mat image(rows, cols, CV_8U, memory.data()); # Externally Allocated - II std::vector<unsigned char> memory(rows*cols); cv::Mat image(rows, cols, CV_8U, memory.data()); # Reassigned - only creates new memory if the old matrix dimensions or type is different image = cv::Mat(rows, cols, CV_8U); # reuses image = cv::Mat(rows, cols, CV_RGB); # new memory
CvtColor
These use the mat create
function under the hood so the destination mat is only reallocated if it is a new object, or has different dimensions.
# calling this every loop for image_disparity_plane will only create the memory on the first run. cv::cvtColor(gim0, image_disparity_plane, cv::COLOR_GRAY2BGR);
Related content
Ament/Colcon
Ament/Colcon
More like this
Docker
Docker
More like this
Drake Systems
Drake Systems
More like this
Sophus
Sophus
More like this
Rclcpp
Rclcpp
More like this
System 76
System 76
More like this