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