最近在做目标识别分类相关工作,有的数据集使用了BBox标注,而给的图片是原图,就需要将数据集中的图片根据BBox的标注重新剪切,生成新的数据集,下面是利用opencv来剪切图片的代码:

#include <opencv2/opencv.hpp>
#include<iostream>
using namespace std;
using namespace cv;
//分割字符串
void SplitString(const string& s, vector<string>& v, const string& c)
{string::size_type pos1, pos2;pos2 = s.find(c);pos1 = 0;while (string::npos != pos2){v.push_back(s.substr(pos1, pos2 - pos1));pos1 = pos2 + c.size();pos2 = s.find(c, pos1);}if (pos1 != s.length())v.push_back(s.substr(pos1));
}
//切割,保存图片
void cut(string path,string path_out,int x,int y,int wigh,int high) {Mat img = imread(path, 1);Mat imgout = img(Rect(x, y, wigh, high));imwrite(path_out,imgout);
//  imshow("imgout", imgout);
}
int main(int argc, char* argv[])
{ifstream fin("./demo.txt");//demo.txt里面保存的是图片名称,BBox的四个坐标string s;string path;string path_out;int x1;int y1;int x2;int y2;while (getline(fin, s)){vector<string> v;SplitString(s, v, ","); for (vector<string>::size_type i = 0; i != v.size(); ++i) {path = "F://dateset//Stanford car dataset//" + (string)v[0];path_out = "F://dateset//Stanford car dataset//car//"+ (string)v[0];x1 = atoi(v[1].c_str());y1 = atoi(v[2].c_str());x2 = atoi(v[3].c_str());y2 = atoi(v[4].c_str());}cout << path_out << endl;cut(path,path_out, x1, y1, x2 - x1, y2 - y1);//  Mat img = imread(path, 1);//   imshow("img",img);//  imwrite(path_out, img);//   waitKey(0);}
}

利用opencv剪切图片相关推荐

  1. python opencv 剪切图片

    因为在 OpenCV2 里面,所有的东西都是 numpy array 即 np.ndarray1,所以使用 opencv 剪切图像主要原理是用 ndarray 的切片.一张图片基本上都是三维数组:行, ...

  2. 利用opencv读取图片将其作为opengl的纹理图片的实现方法

    在opengl中实现三维物体的纹理贴图的第一步就是要读入图片,然后指定该图片为纹理图片.我最早接手的项目中是通过一个专门的读取bmp图片的函数来实现纹理图片的读取的.这个函数有三个缺点: 1.只能读取 ...

  3. 利用OpenCV识别图片背景是否透明

    因为公司的需求,有几百万张图片需要识别,筛选出背景是透明的图片,我上网找了一圈也没看到成熟的方案,于是自己想了一个比较简陋但是还算是挺好用的方案. 大概的图片就是这些种类吧,图一图三是我想要筛选出来的 ...

  4. python图片切面_python 利用opencv进行图片切割

    自学opencv也有十几天了,一直练习教程上面的例子总感觉不够,刚好碰到一个老师出的数学建模题涉及图片处理兴趣立马上来,决定利用所学的解决这个建模题 下面是数学建模题: 最强大脑 近期,江苏卫视正在热 ...

  5. python利用opencv去除图片logo_python 基于opencv去除图片阴影

    一.前言 如果你自己打印过东西,应该有过这种经历.如果用自己拍的图片,在手机上看感觉还是清晰可见,但是一打印出来就是漆黑一片.比如下面这两张图片: 因为左边的图片有大片阴影,所以打印出来的图片不堪入目 ...

  6. 树莓派下利用opencv在图片上画汉字点阵(写一句话)

    一. 点阵字库的原理 一. 汉字编码 1. 区位码 在国标 GD2312-80 中规定,所有的国标汉字及符号分配在一个 94 行.94 列的阵中,方阵的每一行称为一个"区",编号为 ...

  7. matlab去除图片水印_Python利用OpenCV去除图片水印

    点击上方"何俊林",马上关注,每天早上8:50准时推送 真爱,请置顶或星标 这两天公司来了一个新的需求--去除水印,对于我一个从未接触过的这种事情的人来说,当时我是蒙的.不过首先我 ...

  8. OpenCV剪切图片圆形区域

    <OpenCV系列教程> 项目位置:OpenCV-Sample 代码位置:30-CutCircularArea.py 效果如下: 代码: import cv2 import numpy a ...

  9. Python利用Opencv读取图片

    首先,要先确认PyCharm里面有没有装opencv-python.如果没有,点右侧+号搜索添加. 确认有opencv之后,便可以使用cv2读取图片了 import cv2image_path = & ...

  10. 利用OpenCV获取图片上某一点的颜色HSV值

    在进行图像处理时我们经常需要根据图像的颜色提取特定的区域处理,很多时候 RGB 是不适合的,我们需要知道感兴趣区域的区域HSV各分量的范围. RGB 颜色使用 QQ 截图工具或者 Windows 画图 ...

最新文章

  1. java ArrayList 清空元素时迭代器造成的错误
  2. php中 elseif和else if 的区别
  3. java list 转 map_高并发下的Java数据结构(List、Set、Map、Queue)
  4. 同学,你有一份来自支付宝AI学姐的面试锦囊待查收
  5. SAP Spartacus里的injector
  6. [Stardust]星尘配置中心
  7. 使用jmap命令手动导出映像文件?
  8. P01:01背包问题(转)
  9. js layui跳转页面_【WEB前端开辟】layui的iframe跳转链接与页面按钮跳转相干引见...
  10. java默认权限什么时候使用_Java 应用程序默认权限(简例)
  11. Boosting Adversarial Attacks with Momentum论文解读
  12. Java的八大常用类
  13. 重写和重载的区别是什么
  14. Python安装shapely包出现WindowsError: [Error 126]解决方案
  15. WPS如何去除分割线
  16. 利用 π/4=1-1/3+1/5+…,编程计算π的近似值,直到最后一项的绝对值小于 10的负5次方为止,输出π的值并统计累加的项数。
  17. python django及运维开发面试题总结
  18. Android面试题最全总结系列 (持续更新中...)
  19. android txt小说阅读器的实现
  20. JAVA静态代码审查之checkstyle

热门文章

  1. 数据库系统概论笔记三——销售管理子系统E-R图的设计
  2. 计算机病毒和恶意软件管理制度,白城师范学院计算机病毒防治管理制度
  3. 光速不变原理引发的诡异现象与时空分量的解释
  4. Simulink仿真Boost电路
  5. OpenStack在天河二号的大规模部署实践(转)
  6. 【LeetCode - 1258】近义词句子
  7. H5 font标签及其属性
  8. 设置font标签居中显示
  9. axure 鼠标样式_Axure菜单导航怎么添加鼠标选中变色的特效?
  10. 一元三次方程求解matlab_用Matlab ode45函数解常微分方程