OpenCV - 如何将一个 RGB 图像除以另一个?

问题描述

我正在尝试按元素将 RGB 图像除以另一个 RGB 图像。 但结果并不正确。 这是我尝试过的:

    img1 = imread("some RGB image");
    img2 = imread("some RGB image");
    Mat division(img1.size(),CV_32FC3,0.0);
    Mat img1F,img2F;
    cvtColor(img1,img1F,CV_32F);
    cvtColor(img2,img2F,CV_32F);
    divide(img1F,division);

    //-- see results
    vector<Mat> Channels(3),img1Channels(3),img2Channels(3);
    split(division,Channels);
    split(img1F,img1Channels);
    split(img2F,img2Channels);

    for (int i = 0; i < division.cols; i++)
        for (int j = 0; j < division.rows; j++)
            if ((Channels[2].at<float>(j,i)) != 0) {
                cout << "img1F: " << img1Channels[2].at<float>(j,i) << endl;
                cout << "img2F: " << img2Channels[2].at<float>(j,i) << endl;
                cout << "division: " << Channels[2].at<float>(j,i) << endl;
            }

我得到的结果很奇怪。例如:

img1F: -2147483648
img2F: -2147483648
division: -1.29988e+31

我期望的是例如:

img1F: 50
img2F: 200
division: 0.25

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)