真好的名字 2022-11-07 16:36 采纳率: 25%
浏览 12
已结题

picture在pycharm中,虽然为空的模块,但还是引用一个窗口来调参数?

问题遇到的现象和发生背景

picture在pycharm中,虽然为空的模块,但还是引用一个窗口来调参数?

用代码块功能插入代码,请勿粘贴截图

import cv2
import numpy as np
import os

import picture

font = cv2.FONT_HERSHEY_SIMPLEX #设置字体
size = 0.5 #设置大小

width, height = 300, 300 #设置拍摄窗口大小
# width, height = 480, 640 #设置拍摄窗口大小
x0,y0 = 300, 100 #设置选取位置
cnt = 1

mode = 'train'
directory = 'data/'+mode+'/'

cap = cv2.VideoCapture(0) #开摄像头

if __name__ == "__main__":
    while(1):
        flag, frame = cap.read() #读取摄像头的内容
        # 返回的第一个参数为bool类型,用来表示是否读取到帧,如果为False说明已经读到最后一帧。frame为读取到的帧图片
        frame = cv2.flip(frame, 2)
        roi, res, ret, fourier_result, efd_result = picture.binaryMask(frame, x0, y0, width, height) #取手势所在框图并进行处理
        cv2.imshow("roi", roi)  # 显示手势框图
        cv2.imshow("res", res)
        cv2.imshow("ret", ret)

        # 获取现有图像的计数
        count = {'zero':len(os.listdir(directory + "0")),
                 'one': len(os.listdir(directory + "1")),
                 'two': len(os.listdir(directory + "2")),
                 'three': len(os.listdir(directory + "3")),
                 'four': len(os.listdir(directory + "4")),
                 'five': len(os.listdir(directory + "5")),
                 'six': len(os.listdir(directory + "6")),
                 'seven': len(os.listdir(directory + "7")),
                 'eight': len(os.listdir(directory + "8")),
                 'nine': len(os.listdir(directory + "9")),
                 'ten': len(os.listdir(directory + "10")),
                 }

        # 将每一组的计数打印到屏幕上
        cv2.putText(frame, "MODE : " + mode, (10, 50), cv2.FONT_HERSHEY_PLAIN, 1, (0, 255, 255), 1)
        cv2.putText(frame, "IMAGE COUNT", (10, 100), cv2.FONT_HERSHEY_PLAIN, 1, (0, 255, 255), 1)
        cv2.putText(frame, "ZERO : " + str(count['zero']), (10, 120), cv2.FONT_HERSHEY_PLAIN, 1, (0, 255, 255), 1)
        cv2.putText(frame, "ONE : " + str(count['one']), (10, 140), cv2.FONT_HERSHEY_PLAIN, 1, (0, 255, 255), 1)
        cv2.putText(frame, "TWO : " + str(count['two']), (10, 160), cv2.FONT_HERSHEY_PLAIN, 1, (0, 255, 255), 1)
        cv2.putText(frame, "THREE : " + str(count['three']), (10, 180), cv2.FONT_HERSHEY_PLAIN, 1, (0, 255, 255), 1)
        cv2.putText(frame, "FOUR : " + str(count['four']), (10, 200), cv2.FONT_HERSHEY_PLAIN, 1, (0, 255, 255), 1)
        cv2.putText(frame, "FIVE : " + str(count['five']), (10, 220), cv2.FONT_HERSHEY_PLAIN, 1, (0, 255, 255), 1)
        cv2.putText(frame, "SIX : " + str(count['six']), (10, 240), cv2.FONT_HERSHEY_PLAIN, 1, (0, 255, 255), 1)
        cv2.putText(frame, "SEVEN: " + str(count['seven']), (10, 260), cv2.FONT_HERSHEY_PLAIN, 1, (0, 255, 255), 1)
        cv2.putText(frame, "EIGHT: " + str(count['eight']), (10, 280), cv2.FONT_HERSHEY_PLAIN, 1, (0, 255, 255), 1)
        cv2.putText(frame, "NINE: " + str(count['nine']), (10, 300), cv2.FONT_HERSHEY_PLAIN, 1, (0, 255, 255), 1)
        cv2.putText(frame, "TEN: " + str(count['ten']), (10, 320), cv2.FONT_HERSHEY_PLAIN, 1, (0, 255, 255), 1)

        #按 j、l、k、i 分别将选框左移,右移,上移,下移
        #按'q'键退出录像
        key = cv2.waitKey(1) & 0xFF  # 按键判断并进行一定的调整
        if key == ord('i'):
            y0 += 5
        if key == ord('k'):
            y0 -= 5
        if key == ord('l'):
            x0 += 5
        if key == ord('j'):
            x0 -= 5
        # interrupt = cv2.waitKey(10)
        # if interrupt & 0xFF == 27:  # esc key
        #     break
        if key == ord('w'):
            cv2.imwrite(directory + '0/' + '0_' + str(count['zero']+1) + '.jpg', roi)
        if key == ord('1'):
            cv2.imwrite(directory + '1/' + '1_' + str(count['one']+1) + '.jpg', roi)
        if key == ord('2'):
            cv2.imwrite(directory + '2/' + '2_' + str(count['two']+1) + '.jpg', roi)
        if key == ord('3'):
            cv2.imwrite(directory + '3/' + '3_' + str(count['three']+1) + '.jpg', roi)
        if key == ord('4'):
            cv2.imwrite(directory + '4/' + '4_' + str(count['four']+1) + '.jpg', roi)
        if key == ord('5'):
            cv2.imwrite(directory + '5/' + '5_' + str(count['five']+1) + '.jpg', roi)
        if key == ord('6'):
            cv2.imwrite(directory + '6/' + '6_' + str(count['six']+1) + '.jpg', roi)
        if key == ord('7'):
            cv2.imwrite(directory + '7/' + '7_' + str(count['seven']+1) + '.jpg', roi)
        if key == ord('8'):
            cv2.imwrite(directory + '8/' + '8_' + str(count['eight']+1) + '.jpg', roi)
        if key == ord('9'):
            cv2.imwrite(directory + '9/' + '9_' + str(count['nine']+1) + '.jpg', roi)
        if key == ord('0'):
            cv2.imwrite(directory + '10/' + '10_' + str(count['ten']+1) + '.jpg', roi)
        if key == ord('q'):
            break

        cv2.imshow('frame', frame) #播放摄像头的内容
    cap.release()
    cv2.destroyAllWindows() #关闭所有窗口

运行结果及报错内容

picture在pycharm中,虽然为空的模块,但还是引用一个窗口来调参数?

img

  • 写回答

0条回答 默认 最新

    报告相同问题?

    问题事件

    • 系统已结题 11月15日
    • 请采纳用户回复 11月7日
    • 创建了问题 11月7日

    悬赏问题

    • ¥15 k8s生产配置推荐配置及部署方案
    • ¥15 matlab提取运动物体的坐标
    • ¥15 人大金仓下载,有人知道怎么解决吗
    • ¥15 一个小问题,本人刚入门,哪位可以help
    • ¥15 python安卓开发
    • ¥15 使用R语言GD包一直不出结果
    • ¥15 计算机微处理器与接口技术相关问题,求解答图片的这个问题,有多少个端口,端口地址和解答问题的方法和思路,不要AI作答
    • ¥15 如何根据一个截图编写对应的HTML代码
    • ¥15 stm32标准库的PID角度环
    • ¥15 ADS已经下载好了,但是DAS下载不了,一直显示这两种情况,有什么办法吗,非常急!