Applet opencv-python pour le traitement quotidien des images

Il est utilisé pour lire les images vidéo et traiter la valeur en pixels d'une certaine zone de pixels de la vidéo

path = "C:/Users/Pictures/Saved Pictures/lu.mp4"                 # 视频路径
cap = cv2.VideoCapture(path)
count = 1
cnt = 0
while cv2.waitKey(50) != 27:
    t1 = time.time()
    ret, img = cap.read()
    fps = cap.get(cv2.CAP_PROP_FPS)
    print("fps", fps)
    count += 1                                                  # 计数器,计帧
    print("count", count)
    # 对视频某块像素点区域进行像素值处理,可用于隐藏信息遮挡
    """img[280:320, 1247:1370] = (255, 255, 255)
    img[320:400, 1247:1400] = (255, 255, 255)"""
    if count % 7 == 0:                                           # 每隔多少帧读取一张图片
        cnt += 1
        cv2.imwrite("C:/UsersDesktop/img/"+str(cnt)+"o13.jpg", img)    # 可自定义依次命名图片
    cv2.imshow("video", img)
    # cv2.waitKey(1)

Commandes pour la mise à l'échelle de la résolution vidéo et la fréquence d'images

        Pour un encodage de format vidéo spécifique, veuillez vous référer à: fonction cv2.VideoWriter_fourcc() dans OpenCV

Lors de l'écriture d'une vidéo, si vous utilisez l'encodage MP4, etc., la qualité de l'image peut être endommagée. Pour le moment, nous n'avons besoin que d'utiliser l'encodage au format avi pour écrire la vidéo afin d'obtenir une vidéo avec une qualité d'image normale. Ici, nous vous recommandons de utilisez le format avi autant que possible.

path = "C:/Users/Pictures/Saved Pictures/read.mp4"     # 原视频路径
cap = cv2.VideoCapture(path)
fps = 25                # 需要的帧率大小
size = (1844, 766)      # 需要的分辨率大小
getvideo = cv2.VideoWriter("C:/Users/Pictures/Saved Pictures/readi.avi",
                           cv2.VideoWriter_fourcc('X', 'V', 'I', 'D'), fps, size)
# getvideo = cv2.VideoWriter("C:/Users/HZY/Pictures/Saved Pictures/getvideo.mp4",
#                           cv2.VideoWriter_fourcc('M', 'P', '4', 'V'), fps, size)
while cv2.waitKey(1) != 27:
    t1 = time.time()
    ret, img = cap.read()
    if ret:
        # 可对视频某块像素点区域进行像素值处理
        """img[280:320, 1247:1370] = (255, 255, 255)
        img[320:400, 1247:1400] = (255, 255, 255)"""
        dst = cv2.resize(img, size)
        getvideo.write(dst)
    cv2.imshow("video", img)

Utilisé pour la synthèse d'images (peut également effectuer la binarisation des images, la séparation des canaux et enregistrer les images traitées)

src = cv2.imread("C:/Users/Pictures/work2/45.jpg")
dst = cv2.imread("C:/Users/Pictures/work2/46.jpg")
# src = cv2.cvtColor(src, cv2.COLOR_BGR2GRAY)
# gray = cv2.equalizeHist(src)
# src = src.resize(1920, 1080)
# bh, bs, bv = cv2.split(src)
# rh, rs, rv = cv2.split(dst)
# src = cv2.resize(src, (1920, 1080))
# cv2.imshow("gray", gray)
img = src[15:75, 170:210]
dmg = dst[770:1270, 420:750]
getimg = cv2.resize(dmg, (40, 60))
# src[280:320, 800:900] = (255, 255, 255)
# cv2.threshold(src[280:400, 1250:1400], 0, 255, cv2.THRESH_BINARY)
cv2.namedWindow("img", cv2.WINDOW_NORMAL)
cv2.namedWindow("src", cv2.WINDOW_NORMAL)
# cv2.imwrite("C:/Users/Pictures/Saved Pictures/21.jpg", src)
cv2.imshow("src", dst)
cv2.imshow("img", getimg)
print("img", getimg.shape[0], getimg.shape[1])
src[15:75, 170:210] = getimg
cv2.imshow("ppt", src)
cv2.imwrite("C:/Users/Pictures/work2/47.jpg", src)
cv2.waitKey(0)
cv2.destroyAllWindows()

Cet article est uniquement destiné à faciliter le traitement externe quotidien des images par Xiaobai, et non à des discussions techniques. J'espère que les lecteurs me pardonneront mon manque de connaissances.

Guess you like

Origin blog.csdn.net/qq_68271367/article/details/126476269