C++ Opencv之图像数据拷贝分析

测试代码C++

#include<iostream>
#include<opencv2/opencv.hpp>

void main()
{
	//cv::Mat A = (cv::Mat_<float>(3, 3) << 1, 0, 0, 0, 1, 1, 0, 0, 1);
	
	int wh = 1200;
	cv::Mat A = cv::Mat(wh, wh, CV_8UC1, cv::Scalar::all(128));
	

	cv::Mat B, C;

#if 1
	auto t0 = cv::getTickCount();
	B = A;
	B.at<float>(1, 1) = 8;
	auto t1 = cv::getTickCount();
	auto t01 = float(t1 - t0) / cv::getTickFrequency() * 1000;
	std::cout << cv::format("直接赋值耗时:%.2f ms\n", t01);


#endif

	t0 = cv::getTickCount();
	C = A.clone();
	C.at<float>(1, 1) = 8;
	t1 = cv::getTickCount();
	t01 = float(t1 - t0) / cv::getTickFrequency() * 1000;
	std::cout << cv::format("图像clone耗时:%.2f ms\n", t01);

	t0 = cv::getTickCount();
	//unsigned char* buffer = new unsigned char[A.rows * A.cols * A.channels()];
	//针对8通道可以,float或者double另行讨论
	cv::Mat D = cv::Mat(A.size(), A.type());
	memcpy(D.data, A.data, A.rows * A.cols * A.channels());
	
	t1 = cv::getTickCount();
	t01 = float(t1 - t0) / cv::getTickFrequency() * 1000;
	std::cout << cv::format("memcpy耗时:%.2f ms\n", t01);

	std::cout << "go!\n";


}
  • 输出:
直接赋值耗时:0.00 ms
图像clone耗时:0.76 ms
memcpy耗时:0.51 ms
  • 若把图像大小设为3000,则 差距就很明显了
int wh = 3000;
cv::Mat A = cv::Mat(wh, wh, CV_8UC1, cv::Scalar::all(128));
  • 结果如下:
直接赋值耗时:0.00 ms
图像clone耗时:4.84 ms
memcpy耗时:2.53 ms

相关推荐

  1. C++ Opencv图像数据拷贝分析

    2024-05-09 06:38:06       11 阅读
  2. 数据处理图像压缩

    2024-05-09 06:38:06       9 阅读
  3. python 拷贝与深拷贝

    2024-05-09 06:38:06       10 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-05-09 06:38:06       18 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-05-09 06:38:06       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-05-09 06:38:06       19 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-05-09 06:38:06       20 阅读

热门阅读

  1. nodejs之log4js日志管理

    2024-05-09 06:38:06       13 阅读
  2. AR技术的那些事

    2024-05-09 06:38:06       10 阅读
  3. CUDA笔记

    2024-05-09 06:38:06       11 阅读
  4. uni-app 自定义tabbar

    2024-05-09 06:38:06       11 阅读
  5. 鼠标移到图片上,光线闪过效果的实现

    2024-05-09 06:38:06       6 阅读
  6. 星光日报:简单报纸排版的HTML与CSS解析

    2024-05-09 06:38:06       10 阅读
  7. 实用的Chrome命令

    2024-05-09 06:38:06       11 阅读
  8. 2024.5.8 —— LeetCode 高频题复盘

    2024-05-09 06:38:06       11 阅读
  9. 多年后,再探算法和数据结构

    2024-05-09 06:38:06       9 阅读
  10. Element-ui快速入门

    2024-05-09 06:38:06       13 阅读
  11. 「PHP系列」PHP XML Expat 解析器

    2024-05-09 06:38:06       13 阅读