对文件夹中图像的非黑色目标分割结果添加最小矩形包围框,并将结构输出到另一个文件夹中
时间: 2024-06-11 19:09:16 浏览: 15
以下是Python代码实现:
```python
import cv2
import os
# 定义函数,用于在图像中画出最小矩形包围框
def draw_rect(img, rect):
x, y, w, h = rect
cv2.rectangle(img, (x, y), (x+w, y+h), (0, 255, 0), 2)
# 定义函数,用于在文件夹中对所有图像进行目标分割并添加最小矩形包围框
def segment_images(input_folder, output_folder):
# 创建输出文件夹,如果不存在的话
if not os.path.exists(output_folder):
os.makedirs(output_folder)
# 遍历输入文件夹中的所有图像
for filename in os.listdir(input_folder):
# 读取图像
img = cv2.imread(os.path.join(input_folder, filename))
# 对图像进行目标分割,得到二值图像
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
ret, thresh = cv2.threshold(gray, 0, 255, cv2.THRESH_BINARY_INV+cv2.THRESH_OTSU)
# 找到所有非黑色目标的轮廓
contours, hierarchy = cv2.findContours(thresh, cv2.RETR_TREE, cv2.CHAIN_APPROX_SIMPLE)
for contour in contours:
# 计算最小矩形包围框
rect = cv2.minAreaRect(contour)
box = cv2.boxPoints(rect)
box = np.int0(box)
# 在图像中画出最小矩形包围框
draw_rect(img, cv2.boundingRect(contour))
# 将处理后的图像保存到输出文件夹中
cv2.imwrite(os.path.join(output_folder, filename), img)
```
使用示例:
```python
input_folder = "/path/to/input/folder"
output_folder = "/path/to/output/folder"
segment_images(input_folder, output_folder)
```
其中,`input_folder`是待处理的文件夹路径,`output_folder`是输出文件夹路径。执行完毕后,输出文件夹中将包含与输入文件夹中相同名称的图像文件,但添加了最小矩形包围框。
相关推荐
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)