OpenCV-除法运算cv::divide

简介: OpenCV-除法运算cv::divide

函数原型

void divide(InputArray src1, InputArray src2, OutputArray dst,
            double scale = 1, int dtype = -1);
void divide(double scale, InputArray src2,
            OutputArray dst, int dtype = -1);


参数说明

      divide有两个重载函数,主要介绍第一个。第一个是scale*X/Y,第二个是scale/Y,其中sacle是常数。


1.InputArray类型的src1,输入的第一幅图像。

.2.InputArray类型的src2,输入的第二幅图像。

3.OutputArray类型的dst,除法运算后的结果。

4.double类型的scale,常数因子。

5.int类型的dtype,控制输出图像的类型,如果src1和src2类型一致,该值就是-1;如果不一致,该值就对应图像类型,比如当值为0的时候,输出的结果就是CV_8U,值为5的时候,输出的结果就是CV_32F。


测试代码

#include <iostream>
#include <opencv.hpp>
using namespace std;
using namespace cv;
int main()
{
  // 随机生成一个矩阵
  cv::Mat src(10, 10, CV_32FC1);
  for (int i = 0; i < 10; ++i)
  {
    for (int j = 0; j < 10; ++j)
    {
      src.at<float>(i, j) = rand() % 255;
    }
  }
  Mat other1 = Mat::zeros(10, 10, CV_32FC1);
  Mat other2 = Mat::ones(10, 10, CV_8UC1);
  other1.at<float>(2, 2) = 10;
  other2.at<uchar>(2, 2) = 10;
  Mat result1,result2;
  divide(src, other1, result1);
  divide(src, other2, result2,0.1,5);
  system("pause");
  return 0;
}


测试效果

图1 src数据

图2 other1数据

图3 第一次除法结果

图4 other2数据

图5 第二次除法结果

      测试代码中,随机生成10*10的数据矩阵src,用全零矩阵other1先进行除法,设置第二行第二列的值为10,第一次除法运算后,结果只有第二行第二列的点完成了除法,其他全是零值,这是因为函数说明中提到过,除以0还是0;再用全1矩阵other2进行除法,结果符合预期,但是有个注意事项,scale代表除法的结果再乘以的常数因子,还有最后一个参数dtype表示结果的图像类型,比如测试中是5,那么结果矩阵就是CV_32FC,也就是float型。


      如果文章帮助到你了,可以点个赞让我知道,我会很快乐~加油!


相关文章
|
6月前
|
计算机视觉 Python
OpenCV中图像的开、闭运算讲解与实战应用(附Python源码)
OpenCV中图像的开、闭运算讲解与实战应用(附Python源码)
163 0
|
存储 Cloud Native Linux
OpenCV 图像像素运算操作
OpenCV 图像像素运算操作
|
6月前
|
计算机视觉 Python
OpenCV形态学运算中梯度运算、顶帽、黑帽运算讲解与实战应用(附Python源码)
OpenCV形态学运算中梯度运算、顶帽、黑帽运算讲解与实战应用(附Python源码)
169 0
|
6月前
|
计算机视觉 Python
OpenCV中图像的掩模、加法运算讲解与实战(附Python源码)
OpenCV中图像的掩模、加法运算讲解与实战(附Python源码)
424 0
|
4月前
|
机器学习/深度学习 人工智能 算法
Python在计算机视觉(CV)中扮演重要角色,得益于其丰富的库如OpenCV、Pillow和Scikit-image。
【7月更文挑战第5天】Python在计算机视觉(CV)中扮演重要角色,得益于其丰富的库如OpenCV、Pillow和Scikit-image。CV涉及图像处理、模式识别和机器学习,用于图像理解和生成。Python的跨平台特性和活跃社区使其成为CV的理想工具。基本流程包括图像获取、预处理、特征提取、分类识别及图像生成。例如,面部识别通过预处理图像,使用如`cv2.CascadeClassifier`进行检测;物体检测类似,但需适应不同目标;图像生成则利用GAN创造新图像。
68 4
|
3月前
|
计算机视觉 索引
OpenCV读取视频失败<无可用信息,未为 opencv_world453.dll 加载任何符号> cv::VideoCapture
本文介绍了解决OpenCV读取视频失败的错误,指出问题通常由视频路径错误或摄像头索引错误导致,并提供了相应的解决方法。
OpenCV读取视频失败<无可用信息,未为 opencv_world453.dll 加载任何符号> cv::VideoCapture
|
6月前
|
算法 API 计算机视觉
OpenCV(图像处理)-基于Python-形态学处理-开运算、闭运算、顶帽、黑帽运算
1. 形态学 OpenCV形态学是一种基于OpenCV库的数字图像处理技术,主要用于处理图像的形状、结构和空间关系。它包括一系列图像处理工具和算法,包括膨胀、腐蚀、开运算、闭运算、形态学梯度、顶帽、黑帽等。
126 0
|
3月前
|
计算机视觉
OpenCV 图像类型标识符 CV_<bit_depth><S|U|F>C<number_of_channels>
OpenCV 图像类型标识符 CV_<bit_depth><S|U|F>C<number_of_channels>
40 0
|
6月前
|
API 计算机视觉
【OpenCV】形态学滤波(2):开运算、形态学梯度、顶帽、黑帽
【OpenCV】形态学滤波(2):开运算、形态学梯度、顶帽、黑帽
|
6月前
|
计算机视觉
OpenCV按位逻辑运算
OpenCV按位逻辑运算
28 0