跳至主要內容
opencv 画图相关

opencv 提供了绘制直线、圆形、矩形等基本绘图的功能

1、绘直线

cv2.line(画布,起点坐标,终点坐标,颜色,宽度) 例如: cv2.line(image,(20,60),(300,400),(0,0,255),2)

2、绘矩形

cv2.rectange(画布,起点,终点,颜色,宽度) 若宽度大于0,标识边线宽度;如果小于0,表示画实心矩形 cv2.rectange(image,(20,60),(300,400),(255,0,0),-1)

3、绘圆形

cv2.circle(画布,圆心坐标,半径,颜色,宽度) 若宽度大于0,标识边线宽度;如果小于0,表示画实心圆行 cv2.circle(image,(300,300),40,(0,255,0),2)


爱喝水的木子...大约 1 分钟pythonopencvpython
使用opencv检测图片中是否有人物
#!/usr/bin/env python3  
# -*- coding: UTF-8 -*-  
"""  
@Project :all_daily_tasks_code @File    :使用opencv检测图片中是否有人物.py  
@Author  :木子  
@Date    :2024/5/29 上午11:25 """  
  
import os  
import shutil  
# 解决中文路径的问题  
import sys  
  
import cv2  
  
# 获取当前文件路径  
cur_path = os.path.abspath(__file__)  
# 获取当前文件的父目录  
father_path = os.path.abspath(os.path.dirname(cur_path) + os.path.sep + ".")  
# 将父目录添加到系统路径中  
sys.path.append(father_path)  
  
  
# 使用opencv检测图片中是否有人物  
def detect_person(image_path):  
    # 读取图片  
    img = cv2.imread(image_path)  
    if img is None:  
        print(f"Error: Unable to load image at {image_path}")  
        return  # 或者适当的错误处理  
    # 转换为灰度图  
    gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)  
    # 加载人脸检测器  
    face_cascade = cv2.CascadeClassifier(cv2.data.haarcascades + 'haarcascade_frontalface_default.xml')  
    # 检测人脸  
    # faces = face_cascade.detectMultiScale(gray, 1.3, 5)  
    faces = face_cascade.detectMultiScale(gray, scaleFactor=1.1, minNeighbors=5)  
    # 如果检测到人脸,则返回True,否则返回False  
    if len(faces) > 0:  
        return True  
    else:  
        return False  
  
  
# 测试  
if __name__ == '__main__':  
    _dir = r"F:\upload\others\ios\img\chat"  
    pho = r"F:\upload\others\ios\img\photo"  
    for item in os.listdir(_dir):  
        t = os.path.join(_dir, item)  
        if detect_person(t):  
            _dst = os.path.join(pho, item)  
            shutil.move(t, _dst)  
            print(f"{item} 已移动到 {_dst}")  
        else:  
            print(f"{item} 无人脸")

爱喝水的木子...小于 1 分钟python想法codepythonopencv