【发布时间】:2014-05-11 19:11:07
【问题描述】:
我正在尝试将this second answer 代码转换为 c++,我所做的并没有给我适当的结果,这是我的代码:
{
Mat img = imread("messi5.jpg");
int level_n = 2;
Mat p = Mat::zeros(img.cols*img.rows, 3, CV_32F);
vector<Mat> bgr;
cv::split(img, bgr);
//Divide each pixel color with 127 for level 2
for(int i=0; i<img.cols*img.rows; i++) {
p.at<float>(i,0) = bgr[0].data[i] / 127.0;
p.at<float>(i,1) = bgr[1].data[i] / 127.0;
p.at<float>(i,2) = bgr[2].data[i] / 127.0;
}
vector<Mat> Img2 = p[bgr];
Mat out;
cv::transform(img,out,p);
imshow ("output" , out);
}
我不明白的是,我如何将这些除以 127 的颜色放入 Matrix 中,我哪里出错了?
我正在尝试的其他方式是
vector<Mat> bgr;
Mat blue , green , red;
cv::split(img, bgr);
blue = bgr[0]/127.0;
if (blue > 128)
{
blue = 255;
}
else
{
blue = 0;
}
红色和绿色相同
【问题讨论】:
-
“我不明白的是我如何将这些颜色除以 127 放入矩阵中”,到哪个矩阵?,你的意思是
vector<Mat> Img2 -
不,我的意思是该图像上的这些值,当您访问我提到的链接时,您可能会更好地理解
标签: c++ image opencv image-processing computer-vision