问题描述
我正在尝试按元素将 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 (将#修改为@)