我正在尝试从其 rowRange 为 (15,0) 的现有矩阵创建一个新矩阵。但似乎开始应该总是小于结束。所以我无法执行此操作。如何以相反的顺序制作矩阵,以便最后一行是第一行,依此类推。它是一个多维 3 通道矩阵。
我想使下面的矩阵具有rowRange(max_x,max_x-15)。
Mat pad=prelim_im1.rowRange(max_x-15,max_x).clone();
在 for 循环中可能是可能的,但不知道该怎么做。
使用方法flip()和翻转代码 == 0。这应该可以完成工作。
我rowRange(15, 0)
通过循环中的一些像素操作从原始图像中提取。查看更多关于访问像素强度值的信息。
我的原图
结果
代码:
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;
}