如何从open cv中的图像访问第一个5 * 5块?

时间:2014-02-21 05:08:43

标签: c++ opencv image-processing

任何人都可以帮我从图像中访问第一个5 * 5块吗?我是新手打开简历,我正在用c ++进行编码。我在网上搜索。如果有人能回答这个问题会让我的工作更容易

1 个答案:

答案 0 :(得分:4)

您可以使用cv::Mat::operator()

访问图片投资回报率

例如,要获取图像的第一个5x5块,您可以执行以下操作:

int roi_origin_x = 0;
int roi_origin_y = 0;
int block_width = 5;
int block_height = 5;

cv::Rect roi(roi_origin_x, roi_origin_y, block_width, block_height);

cv::Mat region = image(roi);

要访问特定的块编号,例如(i,j),只需更改块的原点,如下所示:

int block_width = 5;
int block_height = 5;
int roi_origin_x =  i * block_width;
int roi_origin_y = j * block_height;

cv::Rect roi(roi_origin_x, roi_origin_y, block_width, block_height);

roi可能会超出图像边界,因此请确保应用检查以使其保持在图像边界内,