python利用opencv截取图片
时间: 2023-04-23 14:04:52 浏览: 82
可以使用Python中的OpenCV库来截取图片。具体步骤如下:
1. 导入OpenCV库
```python
import cv2
```
2. 读取图片
```python
img = cv2.imread('image.jpg')
```
3. 截取图片
```python
# 截取图片的区域
x, y, w, h = 100, 100, 200, 200
# 截取图片
crop_img = img[y:y+h, x:x+w]
```
4. 显示截取后的图片
```python
cv2.imshow('crop image', crop_img)
cv2.waitKey(0)
cv2.destroyAllWindows()
```
以上就是利用Python和OpenCV库来截取图片的步骤。
相关问题
python利用opencv从视频中保存图片
使用OpenCV库可以方便地从视频中截取并保存图片。下面是一个简单的Python代码示例:
```python
import cv2
# 打开视频文件
cap = cv2.VideoCapture('video.mp4')
# 设定帧数,即每秒钟显示多少张图片
fps = cap.get(cv2.CAP_PROP_FPS)
# 读取视频文件中的每一帧图片
while(cap.isOpened()):
ret, frame = cap.read()
if ret == False:
break
# 显示当前帧图片并保存
cv2.imshow('frame', frame)
cv2.imwrite('frame.jpg', frame)
# 按下q退出
if cv2.waitKey(int(1000/fps)) & 0xFF == ord('q'):
break
# 释放资源
cap.release()
cv2.destroyAllWindows()
```
在上面的代码中,首先打开视频文件,并设置每秒钟需要显示多少张图片。然后使用循环读取视频文件中的每一帧图片,并在每一帧图片上显示出来并保存为一个文件。最后,按下q键退出循环,释放资源并关闭窗口。
利用python3和opencv去掉图片黑边
可以通过以下步骤使用Python和OpenCV去掉图片的黑边:
1. 导入必要的库
```
import cv2
import numpy as np
```
2. 读取图片
```
img = cv2.imread('image.jpg')
```
3. 将图片灰度化
```
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
```
4. 对图片进行二值化处理
```
thresh = cv2.threshold(gray, 0, 255, cv2.THRESH_BINARY_INV + cv2.THRESH_OTSU)[1]
```
5. 查找图片边缘
```
cnts = cv2.findContours(thresh, cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_SIMPLE)
cnts = cnts[0] if len(cnts) == 2 else cnts[1]
```
6. 找到图片最大的边缘
```
c = max(cnts, key=cv2.contourArea)
```
7. 获取最大边缘的坐标范围
```
x,y,w,h = cv2.boundingRect(c)
```
8. 截取去掉黑边的图片
```
crop = img[y:y+h, x:x+w]
```
9. 显示截取后的图片
```
cv2.imshow('crop', crop)
cv2.waitKey()
```
完整代码如下:
```
import cv2
import numpy as np
img = cv2.imread('image.jpg')
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
thresh = cv2.threshold(gray, 0, 255, cv2.THRESH_BINARY_INV + cv2.THRESH_OTSU)[1]
cnts = cv2.findContours(thresh, cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_SIMPLE)
cnts = cnts[0] if len(cnts) == 2 else cnts[1]
c = max(cnts, key=cv2.contourArea)
x,y,w,h = cv2.boundingRect(c)
crop = img[y:y+h, x:x+w]
cv2.imshow('crop', crop)
cv2.waitKey()
```