应用:
欲将任意尺寸的一副图片,分别在横向和纵向上进行N等分,这里N = subImageNum。
实现函数如下:
int subImageExtract(
const int subImageNum, //等分数目
const Mat src, //原图
vector<Mat> &subImages) //等分后的各子图
{
if(!src.data){
cout<<"source image error! [subImageExtract()]"<<endl;
return -1;
}
subImages.clear();
int srcHeight, srcWidth, subHeight, subWidth;
srcHeight = src.rows;
srcWidth = src.cols;
subHeight = srcHeight / subImageNum;
subWidth = srcWidth / subImageNum;
for(int j = 0; j < subImageNum; j++)
{
for(int i = 0; i < subImageNum; i++)
{
if(j < subImageNum - 1 && i < subImageNum - 1){
cv::Mat temImage(subHeight, subWidth, CV_8UC3, cv::Scalar(0,0,0));
cv::Mat imageROI = src(cv::Rect(i * subWidth, j * subHeight, temImage.cols, temImage.rows));
cv::addWeighted(te