opencv识别一个文件夹下每张图片楼栋窗户个数的python代码,输出示范:图片 N007.JPG 中窗户数量有 55 个
时间: 2024-10-27 20:15:32 浏览: 23
基于python+opencv的无人机二维码扫描及数字识别代码(高分)
5星 · 资源好评率100%
在Python中,我们可以使用OpenCV(Open Source Computer Vision Library)配合深度学习模型(如 EfficientDet 或 YOLOv4)来检测图像中的窗户。这里我们假设已经训练了一个可以准确识别窗户的模型。下面是一个基本的示例,展示如何使用预训练的模型读取目录下的所有图片并统计窗户的数量:
```python
import cv2
import os
# 加载预训练的窗口检测模型(这里假设使用了YOLOv4)
from yolov4.detect import YOLOV4
model = YOLOV4(weights_path='yolov4.weights', config_path='yolov4.cfg')
# 定义图片目录
image_folder = 'path_to_your_image_folder'
# 计数器初始化
window_count = 0
def count_windows(image_path):
# 转换图片路径为灰度图并进行实时检测
img = cv2.imread(image_path)
boxes = model.detect(img)
# 对每个检测到的对象检查是否是窗户(可以根据标签判断,例如标签为"window")
for box in boxes:
if 'window' in box['labels']:
window_count += 1
# 遍历目录下所有图片
for filename in os.listdir(image_folder):
if filename.endswith('.jpg') or filename.endswith('.png'): # 只处理.jpg和.png文件
full_path = os.path.join(image_folder, filename)
count_windows(full_path)
print(f'图片 {filename} 中窗户数量有 {window_count} 个')
window_count = 0 # 每次检测完一张图片清零计数
# 如果有未处理的图片,这里会输出最后一次图片的结果
```
注意,这个示例依赖于`yolov4.detect`模块,你需要先安装它(如果需要可以从GitHub上找到相应的库),并且替换`weights_path`和`config_path`为你实际的模型权重文件和配置文件位置。
阅读全文