想将一张大图片分成256*256像素的多个小图片,网上搜了很多资料,知道opencv的API中没有这样的函数,只能自己实现。
实现程序环境:
opencv版本:opencv2.4.4
编译环境:vs2010
操作系统:xp
我的实现方法有4步:
1)将图片转化为长宽都是2的幂次的图片,使用resize函数。(根据本文的图片素材,转化成4096*2048像素)
cv::resize(img,result,cv::Size(4096,2048));
2)用for循环,从坐上角依次选取256*256的矩形ROI(感兴趣区域)
3)将选取的ROI复制到临时tempimage中,添加到vector<cv::Mat>中
int m,n;
m = image.rows/height;
n = image.cols/width;
vector<cv::Mat> imgOut;
for (int j = 0;j<m;j++)
{
for(in