Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/153.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++;Mat的代码转换 我试图把代码转换成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); } { Mat img=imread(“mesi5.jpg”); int级别n=2; Mat p=Mat::零(img.cols*img.rows,3,CV_32F); 载体bgr; cv::拆分(img、bgr); //将每个像素颜色除以127表示级别2 对于(int i=0;i 128) { 蓝色=255; } 其他的 { 蓝色=0; }_C++_Image_Opencv_Image Processing_Computer Vision - Fatal编程技术网

C++;Mat的代码转换 我试图把代码转换成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); } { Mat img=imread(“mesi5.jpg”); int级别n=2; Mat p=Mat::零(img.cols*img.rows,3,CV_32F); 载体bgr; cv::拆分(img、bgr); //将每个像素颜色除以127表示级别2 对于(int i=0;i 128) { 蓝色=255; } 其他的 { 蓝色=0; }

C++;Mat的代码转换 我试图把代码转换成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); } { Mat img=imread(“mesi5.jpg”); int级别n=2; Mat p=Mat::零(img.cols*img.rows,3,CV_32F); 载体bgr; cv::拆分(img、bgr); //将每个像素颜色除以127表示级别2 对于(int i=0;i 128) { 蓝色=255; } 其他的 { 蓝色=0; },c++,image,opencv,image-processing,computer-vision,C++,Image,Opencv,Image Processing,Computer Vision,红色和绿色也一样为什么不在适当的位置执行(对于级别2): matimg=imread(“mesi5.jpg”); 对于(int i=0;i)“我不明白的是,我是如何把我除以127的这些颜色放入矩阵的”,哪个矩阵?你的意思是vector Img2不,我是指该图像上的这些值,当你访问我提到的链接时,你可能会更好地理解我想在8UC4图像上应用相同的东西,在8UC4中输入,输出也是8UC4,我在android中使用opencv和java(android ndk),我将Vec3b更改为Vec4b,但仍然没

红色和绿色也一样

为什么不在适当的位置执行(对于级别2):

matimg=imread(“mesi5.jpg”);

对于(int i=0;i)“我不明白的是,我是如何把我除以127的这些颜色放入矩阵的”,哪个矩阵?你的意思是
vector Img2
不,我是指该图像上的这些值,当你访问我提到的链接时,你可能会更好地理解我想在8UC4图像上应用相同的东西,在8UC4中输入,输出也是8UC4,我在android中使用opencv和java(android ndk),我将Vec3b更改为Vec4b,但仍然没有输出,需要更改什么?@Munieb这应该不是问题。您能详细描述一下,当您将Vec3b更改为Vec4b时,您会遇到什么问题吗?它只是没有显示输出,但我以另一种方式进行更改
vector<Mat> bgr;
Mat blue , green , red;
    cv::split(img, bgr);
    blue = bgr[0]/127.0;
    if (blue > 128)
    {
        blue = 255;
    }
    else
    {
        blue = 0;
    }
Mat img = imread("messi5.jpg");
for(int i=0;i<img.rows;i++)
    for(int j=0;j<img.cols;j++) {
        cv::Vec3b p = img.at<cv::Vec3b>(i,j);
        for(int k = 0;k < img.channels();k++)
             p[k] = p[k] > 127 ? 255 : 0;
        img.at<cv::Vec3b>(i,j) = p;
}
// do whatever you want with processed image img