初学OpenCV学习记录(三)

以下内容摘自OpnCV2 计算机视觉编程手册

测试一段代码的运行时间

代码如下:

double duration;
duration=static_cast<double>(cv::getTickCount());     //getTickCount函数获取开机算起的时钟周期数
//此处添加被测试的代码
duration=static_cast<double>(cv::getTickCount())-duration;
duration/=cv::getTickFrequency();                    //getTickFrequency获取时钟频率,最终得到的运行时间单位为ms

图像的运算

方法一:使用函数
例如:
算数运算函数:
add()、addWeighted()、subtrac()、absdiff()、multiply()、divide()
位运算函数:
bitwise_and()、 bitwise_or()、 bitwise_xor()、 bitwise_not ()
最值函数:min()、 max()
其他运算:sqrt()、 pow abs()
方法二:直接使用运算符
OpenCV将上面大部分函数都进行了重载,可以直接使用对应的操作符,比如:+、-、*、\、&、|、^、~等等

定义感兴趣区域

很多时候我们只是需要对图像中的某一个区域进行操作,我们可以定义一个感兴趣区域(ROI),ROI一旦定义以后就可以被当做一个普通的cv::Mat实例进行处理,ROI指向和原图像是同一块内存区域,处理定义以后的Mat对象就会影响到原图像。
定义感兴趣区域的方法如下:

cv::Mat imageROI;
imageROI=image(cv::Rect(200,300,500,500));

cv::Rect表示一个矩形区域,区域左上角坐标为(200,300),矩形的长和宽分别为500和500
另一种定义方法为:

imageROI=image(cv::Range(300,800),cv::Range(200,700))

表示矩形区域为300行到800和200列到700列。

猜你喜欢

转载自blog.csdn.net/weixin_42411702/article/details/123821927
今日推荐