Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/opencv/3.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++ 如何在opencv中定义递减行范围_C++_Opencv - Fatal编程技术网

C++ 如何在opencv中定义递减行范围

C++ 如何在opencv中定义递减行范围,c++,opencv,C++,Opencv,我正在尝试从一个行范围为(15,0)的现有矩阵创建一个新矩阵。但是看起来开始应该总是小于结束。所以我不能这样做。如何使矩阵按相反顺序排列,使结束行成为第一行,依此类推。这是一个多维3通道矩阵 我想让下面的矩阵具有行范围(max_x,max_x-15) 可以在for循环中使用,但不确定如何执行。使用翻转代码==0的方法。这应该可以完成工作。我通过循环中的一些像素操作从原始图像中提取行范围(15,0)。了解更多关于 我的原始图像 结果 代码: int main(int argc,char**ar

我正在尝试从一个行范围为(15,0)的现有矩阵创建一个新矩阵。但是看起来开始应该总是小于结束。所以我不能这样做。如何使矩阵按相反顺序排列,使结束行成为第一行,依此类推。这是一个多维3通道矩阵

我想让下面的矩阵具有行范围(max_x,max_x-15)

可以在for循环中使用,但不确定如何执行。

使用翻转代码==0的方法。这应该可以完成工作。

我通过循环中的一些像素操作从原始图像中提取
行范围(15,0)
。了解更多关于

我的原始图像

结果

代码:

int main(int argc,char**argv){
Mat img=imread(“c:\\test.jpg”);
Mat subimg=img.clone();
对于(int y=0;y<16;y++){
对于(int x=0;x
您可以通过使用原始指针访问图像来加速此代码。
Mat pad=prelim_im1.rowRange(max_x-15,max_x).clone();
int main(int argc, char** argv) {
    Mat img = imread("c:\\test.jpg");
    Mat subimg = img.clone();
    for (int y = 0; y < 16; y++) {
        for (int x = 0; x < img.cols; x++ ) {
            for (int channel = 0; channel < 3; channel++) {
                subimg.at<Vec3b>(y, x)[channel] = img.at<Vec3b>((15 - y), x)[channel];
            }
        }
    }
    namedWindow("img", CV_WINDOW_AUTOSIZE);
    imshow("img", img);
    namedWindow("sub", CV_WINDOW_AUTOSIZE);
    imshow("sub", subimg);
    waitKey();
    return 0;
}