python利用opencv取图像最小外接矩形去黑边
时间: 2023-10-09 20:11:31 浏览: 137
Job3.zip_opencv定位_python_python检测矩形_图像处理_矩形
5星 · 资源好评率100%
可以使用OpenCV库来实现这个功能。下面是基本的步骤:
1. 读取图像并进行灰度化处理。
```
import cv2
img = cv2.imread('image.jpg')
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
```
2. 对灰度图像进行阈值化处理。
```
_, thresh = cv2.threshold(gray, 0, 255, cv2.THRESH_BINARY_INV + cv2.THRESH_OTSU)
```
3. 查找轮廓并选择最大的轮廓。
```
contours, _ = cv2.findContours(thresh, cv2.RETR_TREE, cv2.CHAIN_APPROX_SIMPLE)
max_contour = max(contours, key=cv2.contourArea)
```
4. 计算最小外接矩形并进行旋转。
```
rect = cv2.minAreaRect(max_contour)
angle = rect[2]
if angle < -45:
angle += 90
center = rect[0]
size = rect[1]
M = cv2.getRotationMatrix2D(center, angle, 1.0)
rotated = cv2.warpAffine(img, M, img.shape[:2], flags=cv2.INTER_CUBIC)
```
5. 裁剪图像并保存。
```
x, y, w, h = cv2.boundingRect(max_contour)
cropped = rotated[y:y+h, x:x+w]
cv2.imwrite('cropped_image.jpg', cropped)
```
这样就可以去除图像的黑边并得到最小外接矩形。
阅读全文