在实际中看到的应用

cv::Mat A = cv::imread(argv[1], 0);cv::Size patchSize(100, 100);
cv::Point topleft(A.cols / 2, A.rows / 2);    //定义图像中间的点
cv::Rect roi(topleft.x, topleft.y, patchSize.width, patchSize.height);  //定义矩形,大小为parthSize,位置为图像A中中间的位置(x,y)
cv::Mat B = A(roi);        //根据这个在图片A上矩形roi大小的区域构建,矩阵B//cv::getOptimalDFTSize函数返回一个随机数生成器,该生成器的范围是(矩阵A的行数+矩阵B的行数-1,A的列数+B的列数-1)
int dft_M = cv::getOptimalDFTSize(A.rows + B.rows - 1);
int dft_N = cv::getOptimalDFTSize(A.cols + B.cols - 1);//cv::Mat::zeros构建一个全0矩阵,它的大小为dft_M行,dft_N列,数据类型为cv_32f
cv::Mat dft_A = cv::Mat::zeros(dft_M, dft_N, CV_32F);
cv::Mat dft_B = cv::Mat::zeros(dft_M, dft_N, CV_32F);//从矩阵dft_A中位置(0,0)的位置,取大小为 A.cols, A.rows的部分
cv::Mat dft_A_part = dft_A(cv::Rect(0, 0, A.cols, A.rows));
cv::Mat dft_B_part = dft_B(cv::Rect(0, 0, B.cols, B.rows));//将A转换为dft_A_part.type()类型,输出到dft_A_part中,
//将数组转换为具有可选缩放功能的其他数据类型。
A.convertTo(dft_A_part, dft_A_part.type(), 1, -mean(A)[0]);
B.convertTo(dft_B_part, dft_B_part.type(), 1, -mean(B)[0]);

查找资料

定位源码


描述太少,而且定位的位置好像也不太对

查看文档


这个符合我遇到的情况:

将数组转换为具有可选缩放功能的其他数据类型。

该方法将源像素值转换为目标数据类型。在末尾应用saturate_cast<>,以避免可能的溢出:

参数
输出矩阵;如果在操作之前没有合适的大小或类型,则重新分配。

期望的输出矩阵类型,或者更确切地说,深度,因为通道的数量与输入的相同;如果rtype为负,则输出矩阵将具有与输入相同的类型。

缩放的比例因子。

对缩放后的值求和。

理解

在我遇到的例子中的作用

//将A转换为dft_A_part.type()类型,输出到dft_A_part中,比例为1保持不变,对缩放后的值求平均,取第一个使用//将数组转换为具有可选缩放功能的其他数据类型。A.convertTo(dft_A_part, dft_A_part.type(), 1, -mean(A)[0]);B.convertTo(dft_B_part, dft_B_part.type(), 1, -mean(B)[0]);

这是截取的文档示例的一部分

/* brightness/contrast callback function */
static void updateBrightnessContrast( int /*arg*/, void* )
{int histSize = 64;int brightness = _brightness - 100;int contrast = _contrast - 100;/** The algorithm is by Werner D. Streidt* (http://visca.com/ffactory/archives/5-99/msg00021.html)*/double a, b;if( contrast > 0 ){double delta = 127.*contrast/100;a = 255./(255. - delta*2);b = a*(brightness - delta);}else{double delta = -128.*contrast/100;a = (256.-delta*2)/255.;b = a*brightness + delta;}Mat dst, hist;image.convertTo(dst, CV_8U, a, b);imshow("image", dst);

opencv cv::Mat::convertTo()函数相关推荐

  1. 【opencv-c++】cv::Mat::convertTo图像像素类型转换

    [opencv-c++]cv::Mat::convertTo图像像素类型转换 1.背景 2.示例 1.背景 opencv的最常用的图像数据类型是unsigned char 8bits, unsigne ...

  2. OpenCV cv::Mat::checkVector用法的实例(附完整代码)

    OpenCV cv::Mat::checkVector用法的实例 OpenCV cv::Mat::checkVector用法的实例 OpenCV cv::Mat::checkVector用法的实例 # ...

  3. OpenCV cv :: Mat的串行输出功能的实例(附完整代码)

    OpenCV cv :: Mat的串行输出功能的实例 OpenCV cv :: Mat的串行输出功能的实例 OpenCV cv :: Mat的串行输出功能的实例 #include "open ...

  4. OpenCV 中的 convertTo 函数

    文章转载自: iracer的CSDN博客 http://blog.csdn.net/iracer/article/details/49204147 https://blog.csdn.net/qq_2 ...

  5. 如何用指针访问opencv cv::Mat数据?ptr<uchar>()

    示例: #include <opencv2/opencv.hpp> #include <iostream>using namespace cv; using namespace ...

  6. opencv cv::mat::data是什么数据类型?

    本身是一个uchar指针,用的话你就自己当成一个colsrowschannels的矩阵,类型通过type()方法可以获得,返回的是opencv自己定义的宏(例如CV_16SC3).根据返回宏再去判断数 ...

  7. Opencv cv::Mat利用at求像素点值

    描述 利用at取值时,一定要注意cv::Mat的类型 类型及对应关系 CV_8U(uchar) CV_8UC1 (uchar) CV_8UC2 (Vec2b) CV_8UC3 (Vec3b) CV_8 ...

  8. OpenCv cv::Mat 转 IplImage 函数

    调用该函数如下: MatConvertImage(img,qImg); void MatConvertImage(Mat& imgmat, IplImage* img) { cv::cvtCo ...

  9. OpenCV cv::Mat类

    using namespace cv; 1.Mat的声明: Mat m=Mat(rows, cols, type); Mat m=Mat(Size(width,height), type); type ...

  10. OpenCv中的cv::Mat::create()函数,cvRound(),cvFloor(),cvCeil()函数的详解l

    文件说明: cv::create()函数的详解 函数原型: inline void Mat::create(int _rows, int _cols, int _type) inline void M ...

最新文章

  1. b区计算机考研招不满的大学,b区考研招不满的大学,适合调剂的学校有哪些
  2. ActiveMQ学习笔记(二) JMS与Spring
  3. 几张动态图捋清Java常用数据结构及其设计原理
  4. Electron中提示:Refused to execute inline event handler because it violates
  5. jmap java opts_jmap --查看JVM内存使用详情
  6. 首个完全武器化的 Spectre Exploit 现身
  7. 学会这几个简单的bat代码,轻松在朋友面前装一波13
  8. 废旧手机变身服务器,打造私人云盘
  9. IPC网络高清摄像机基础知识1(IPC芯片市场分析以及“搅局者”华为海思 “来自2013年”)
  10. 在Fcitx5中使用自定义双拼方案
  11. Fibonacci数列Linux程序,使用fork()调用计算Fibonacci数列
  12. 苹果手机软件升级密码_安卓系统用久了会卡,苹果系统就能一直流畅?
  13. 白嫖?给我也整一个!白嫖网易云游戏平台时长(网易云游戏平台自动签到)
  14. 手机 app GDPR 合规的9个关键步骤
  15. 【蓝桥杯】Java_B组2017年省赛真题
  16. PHP Fatal error: Uncaught think\\exception\\ErrorException: error_log相关解决方法
  17. 完美解决KMplayer无法播放RMVB、RM电影问题
  18. 团队开发-极速蜗牛-NABC模型
  19. 输电线路无人机巡检图像数据集
  20. 【Adams安装打开出现不是内部命令,也不是可运行程序问题】

热门文章

  1. dubboX提供rest服务
  2. 企业管理理论综述与实践 — 战略
  3. 云课堂智慧职教网页版登录入口_智慧职教云课堂登录
  4. 微信小程序活动管理系统
  5. sql填充空值_如何在SQL中使用先前的非空值填充稀疏数据
  6. ad14 drc报错_AD怎么设置DRC检查常规检查项报错?
  7. C语言: gotoxy函数
  8. 【知识总结】有关前端安全的面试题总结
  9. oracle巡检计划书,网络巡检计划表.doc
  10. svn服务端可视化界面