这篇文章将为大家详细讲解有关怎么在Python中使用opencv截取图片,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。
Python的五大特点是什么
Python的五大特点:1。简单易学,开发程序时,专注的是解决问题,而不是搞明白语言本身。2。面向对象,与其他主要的语言如c++和Java相比,Python以一种非常强大又简单的方式实现面向对象编程。3。可移植性,Python程序无需修改就可以在各种平台上运行。4。解释性,Python语言写的程序不需要编译成二进制代码,可以直接从源代码运行程序。5。开源,Python是牙线(自由/开放源码软件)之一。
一、手动单张裁剪/截取
<强> selectROI 强>:选择感兴趣区域,边界框框选x, y, w h
<强> selectROI (img, windowName showCrosshair=None, fromCenter=None): 强>
引用>
。参数windowName:选择的区域被显示在的窗口的名字
。参数img:要在什么图片上选择ROI
。参数showCrosshair:是否在矩形框里画十字线。
。参数fromCenter:是否是从矩形框的中心开始画要截取的原图如下:
import cv2 时间=img & # 39; D:/anaconda3 JupyterNotebookFile/图片/dogs_and_cats.jpg& # 39; 时间=img cv2.imread (img) cv2.imshow(& # 39;原始# 39;,,img) #,选择ROI 时间=roi cv2.selectROI (windowName=皁riginal",, img=img, showCrosshair=True,, fromCenter=False) w, x,, y,, h =, roi 打印(roi) #,显示ROI并保存图片 if roi  !=, (0, 0, 0, 0): ,,,crop =, img [y: y + h, x: x + w) ,,,cv2.imshow(& # 39;作物# 39;,,作物) ,,,cv2.imwrite (& # 39; D:/anaconda3 JupyterNotebookFile/图片/dogs_and_cats_crop.jpg& # 39;,,作物) ,,,print(& # 39;得救了! & # 39;) #,退出 cv2.waitKey (0) cv2.destroyAllWindows ()
读者根据自己的图片目录修改目标图片目录和要写入的目录。
二,根据图片的位置坐标进行裁剪/截取
import cv2 我=,cv2.imread(& # 39;图片路径& # 39;)
在用cv2.imread()默认读取三通道RGB图像后,会返回一个三维数组。同时,可用im (h, w)的形式来截取图片中的某个部分,比如中间柴犬的位置相对左上角坐标原点为,从上到下为190 - 380,从左往右为180 - 260。这样就可以通过坐标的相对位置来裁剪/截取目标图像了。
完整代码如下:
import cv2 import 操作系统 时间=file_path & # 39; D:/anaconda3 JupyterNotebookFile/图片/dogs_and_cats.jpg& # 39; 时间=out_file_name & # 39; dogs_and_cats_cropp& # 39; 我=,cv2.imread (file_path) 我=,im (190:380,180:260) save_path =, " # 39; D:/anaconda3/JupyterNotebookFile/图片# 39; 时间=save_path_file os.path.join (save_path out_file_name + & # 39; jpg # 39;) cv2.imwrite (save_path_file im)截取后的图片效果:
<强>若很多个图片数据具有相似的位置,则可以通过遍历文件的方式批量裁剪/截取,代码如下:强>
import cv2 import 操作系统 def clip_image(文件列表,我,im_path):,, & # 39;& # 39;& # 39; 文件列表:文件夹路径 我:批量保存的图片文件名,用数字表示 im_path:图片路径 & # 39;& # 39;& # 39;,, ,,,for file 拷贝文件列表: ,,,,,,,file_path=os.path.join (im_path、文件) ,,,,,,,我=cv2.imread (file_path) ,,,,,,,# (h, w)根据自己图片中目标的位置修改 ,,,,,,,我=im (190:380,180:260),,,,,,,,,,,,,,,,,,,,,, ,,,,,,,save_path =, " # 39; D:/anaconda3/JupyterNotebookFile/图片# 39; ,,,,,,,save_path_file =, os.path.join (save_path out_file_name + & # 39; jpg # 39;),,,,,,,,,,, ,,,,,,,cv2.imwrite (save_path_file, im),,,,,,,,,,,, ,,,,,,,我+ 1=怎么在Python中使用opencv截取图片