zoukankan      html  css  js  c++  java
  • 在图像中截取小图并保存

        实现以横向步长step_row、纵向步长step_col,在一幅大图上剪裁宽度为width、高度为height的小图像,图像命名形式为“数字(递增)_大图名”格式,将小图保存在argv[6]的文件夹中。

    #include <opencv2/opencv.hpp>
    #include <string>
    #include <iostream>
    using namespace std;
    using namespace cv;
    
    int main (int argc, char *argv[]){
        Mat img = imread(argv[1], 0);
        int width = atoi(argv[2]);
        int height = atoi(argv[3]);
        int step_col = atoi(argv[4]);
        int step_row = atoi(argv[5]);
        int index=0;
        stringstream name;
        for (int j = 0; j < img.cols; j = j + step_col){
            if (j + width > img.cols)
                break;
            for (int i = 0; i < img.rows; i = i + step_row){
                    cout << j << endl;
                    cout << i << endl;
                    if (i + height > img.rows)
                        break;
                    char str[256]; 
                    snprintf(str, sizeof(str), "%d", index);
                    string ss = str;
                    name << argv[6] + ss + "_" + argv[1];
                    imwrite(name.str(), img(Rect(j, i, width, height)));
                    name.clear();
                    name.str(std::string());
                    index++;
                }        
        }
        return 0;
    }
  • 相关阅读:
    12.19手动 项目部署
    12.19 redis缓存
    12.19 redis缓存
    用压测模拟并发、并发处理(synchronized,redis分布式锁)
    12.19 异常捕获补充
    app提交版本更新的流程
    变量
    类型转换的判别
    本文档中使用的伪类型
    Callbacks
  • 原文地址:https://www.cnblogs.com/nannan-yhx/p/10406346.html
Copyright © 2011-2022 走看看