欧美vvv,亚洲第一成人在线,亚洲成人欧美日韩在线观看,日本猛少妇猛色XXXXX猛叫

新聞資訊

    可視化推理預測系統功能簡介參看:48.1.基于Python+PyQt5的可視化推理預測系統

    界面設計參看:48.2.PyQt5的可視化推理預測系統——UI設計

    一、資源文件的讀取和釋放

    有兩個資源文件:

    1、OpenCV的人臉級聯分類器xml文件:haarcascade_frontalface_alt.xml,用來檢測人臉,文件也比較小,所以當成資源文件打包,運行程序,自動釋放資源文件。

    #釋放資源文件
            if  not os.path.exists("haarcascade_frontalface_alt.xml"):
                QtCore.QFile.copy(":harr/haarcascade_frontalface_alt.xml","haarcascade_frontalface_alt.xml")

    2、程序啟動的畫面圖像文件

    #讀取資源圖像
    splash = QtWidgets.QSplashScreen(QtGui.QPixmap(':img/start.jpg'))
    splash.show()

    二、窗體上顯示圖像或視頻畫面

    #在lable上顯示圖像 
    def imgshow(self,frame,lbl):
         #img=QtGui.QImage(frame.data,frame.shape[1],frame.shape[0],QtGui.QImage.Format_BGR888)    
        #重載修復圖像顯示變形問題      
        img = QtGui.QImage(frame.data, frame.shape[1], frame.shape[0], frame.shape[1] * 3,QtGui.QImage.Format_BGR888)
        #按比例縮放
        if self.isscaled:  
            lbl.setPixmap(QtGui.QPixmap.fromImage(img).scaled(480, 480, QtCore.Qt.KeepAspectRatio))
        else:
            lbl.setPixmap(QtGui.QPixmap.fromImage(img))
            lbl.setScaledContents(True) #自適應大小

    注意:有時會因為圖像格式問題,顯示出來的圖像會變形不全,這里就要使用重載修復圖像顯示變形問題。

    顯示圖像

    三、預覽/預測功能

    沒有選擇任務模型就是預覽,否則就是根據選擇的任務模型預測

    #打開輸入數據類型
    def Open(self):        
        self.Close()
        self.isstop=False      
        self.isscaled=self.cboxscaled.isChecked()
        #獲取選項按鈕狀態
        self.iscam=self.rbtcam.isChecked()
        self.isimg=self.rbtimg.isChecked()
        self.isvideo=self.rbtvideo.isChecked()
        self.isipcam=self.rbtipcam.isChecked()
    
        taskid=self.cboxtask.currentIndex()
        task=self.cboxtask.currentText()
        model_dir=os.path.join("models",self.cboxtask.currentText(),self.cboxmodel.currentText(),"inference_model")
        #print(model_dir) 
        #圖像縮放
        self.isscaled=self.cboxscaled.isChecked()                         
    
        if taskid==0:#預覽
            if self.isimg:
                self.fileName, self.fileType = QtWidgets.QFileDialog.getOpenFileName(self, '選擇','', "圖像文件(*.jpg *.png)")
                if self.fileName!="":
                    frame=cv2.imread(self.fileName)                            
                    self.imgshow(frame,self.lblsrc)            
            else:
                 self.Display()
        else:#預測
            if self.iscam or self.isipcam:
                if task in ["face-model"] :
                    self.cls_videodetect(model_dir,isface=True)
                if task in ["cls-model"]:
                    self.cls_videodetect(model_dir,isface=False)
                if  task in ["det-model"]:
                    self.det_videodetect(model_dir)
    
            if self.isimg:
                self.fileName, self.fileType = QtWidgets.QFileDialog.getOpenFileName(self, '選擇','', "圖像文件(*.jpg *.png)")
                if self.fileName!="":
                    frame=cv2.imread(self.fileName)                            
                    self.imgshow(frame,self.lblsrc)            
    
                #print(task)
                if task in ["face-model"]:#調用圖像分類-人臉檢測與識別任務,結果顯示在dst上                
                    self.cls_imgpredict(model_dir,self.fileName,isface=True)#預測返回結果
    
                if task in ["cls-model"]: #調用圖像分類-貓狗分類
                    self.cls_imgpredict(model_dir,self.fileName,isface=False)#預測返回結果
    
                if  task in ["det-model"]:#調用目標檢測-人頭檢測
                    self.det_imgpredict(model_dir,self.fileName)
    
            if self.isvideo:
                self.fileName, self.fileType = QtWidgets.QFileDialog.getOpenFileName(self, '選擇視頻文件','', '*.mp4')
                if self.fileName!="":
                    if task in ["face-model"] :
                        self.cls_videodetect(model_dir,self.fileName,isface=True)
                    if task in ["cls-model"]:
                        self.cls_videodetect(model_dir,self.fileName,isface=False)
                    if  task in ["det-model"]:
                        self.det_videodetect(model_dir,self.fileName)

    貓狗分類預測

    四、拍照、錄制功能

    #開啟拍照或錄制 
    def snap(self):
        if self.cap.isOpened():
            self.issnap=True
    def rec(self):
        if self.cap.isOpened():
            self.isrec =not self.isrec
            if self.isrec:
                #創建video writer
                ret,frame=self.cap.read()
                self.createVideo(frame)
                self.btnrec.setText("停止錄制")    
                self.statusBar().showMessage("文件錄制中…………\n")                    
            else:
                self.video.release() #釋放video writer
                self.btnrec.setText("開始錄制") 
                self.statusBar().showMessage("文件保存在output目錄里\n")     
    
    #攝像頭或監控拍照
    def imgsave(self,frame):
        if self.rbtcam.isChecked() or self.rbtipcam.isChecked():
            fname=datetime.datetime.now().strftime("%Y%m%d%H%M%S")+".jpg"
            if not os.path.exists("output"):
                os.makedirs("output")                
            cv2.imwrite(os.path.join("output",fname),frame)
            self.statusBar().showMessage(fname+"文件保存在output目錄里\n")
            self.issnap=False            
    #攝像頭或監控錄制            
    def createVideo(self,frame):
        if self.rbtcam.isChecked() or self.rbtipcam.isChecked():
            fname=datetime.datetime.now().strftime("%Y%m%d%H%M%S")+".mp4"
            if not os.path.exists("output"):
                os.makedirs("output")
            self.video=cv2.VideoWriter(
                filename=os.path.join("output",fname),
                fourcc=cv2.VideoWriter_fourcc(*"mp4v"),
                fps=15,
                frameSize=(frame.shape[1],frame.shape[0])
                ) 
            

    注:這里要注意保存錄像的文件名命名格式,避免文件名重置。

    可視化推理預測系統功能簡介參看:48.1.基于Python+PyQt5的可視化推理預測系統

    界面設計參看:48.2.PyQt5的可視化推理預測系統——UI設計

    一、資源文件的讀取和釋放

    有兩個資源文件:

    1、OpenCV的人臉級聯分類器xml文件:haarcascade_frontalface_alt.xml,用來檢測人臉,文件也比較小,所以當成資源文件打包,運行程序,自動釋放資源文件。

    #釋放資源文件
            if  not os.path.exists("haarcascade_frontalface_alt.xml"):
                QtCore.QFile.copy(":harr/haarcascade_frontalface_alt.xml","haarcascade_frontalface_alt.xml")

    2、程序啟動的畫面圖像文件

    #讀取資源圖像
    splash = QtWidgets.QSplashScreen(QtGui.QPixmap(':img/start.jpg'))
    splash.show()

    二、窗體上顯示圖像或視頻畫面

    #在lable上顯示圖像 
    def imgshow(self,frame,lbl):
         #img=QtGui.QImage(frame.data,frame.shape[1],frame.shape[0],QtGui.QImage.Format_BGR888)    
        #重載修復圖像顯示變形問題      
        img = QtGui.QImage(frame.data, frame.shape[1], frame.shape[0], frame.shape[1] * 3,QtGui.QImage.Format_BGR888)
        #按比例縮放
        if self.isscaled:  
            lbl.setPixmap(QtGui.QPixmap.fromImage(img).scaled(480, 480, QtCore.Qt.KeepAspectRatio))
        else:
            lbl.setPixmap(QtGui.QPixmap.fromImage(img))
            lbl.setScaledContents(True) #自適應大小

    注意:有時會因為圖像格式問題,顯示出來的圖像會變形不全,這里就要使用重載修復圖像顯示變形問題。

    顯示圖像

    三、預覽/預測功能

    沒有選擇任務模型就是預覽,否則就是根據選擇的任務模型預測

    #打開輸入數據類型
    def Open(self):        
        self.Close()
        self.isstop=False      
        self.isscaled=self.cboxscaled.isChecked()
        #獲取選項按鈕狀態
        self.iscam=self.rbtcam.isChecked()
        self.isimg=self.rbtimg.isChecked()
        self.isvideo=self.rbtvideo.isChecked()
        self.isipcam=self.rbtipcam.isChecked()
    
        taskid=self.cboxtask.currentIndex()
        task=self.cboxtask.currentText()
        model_dir=os.path.join("models",self.cboxtask.currentText(),self.cboxmodel.currentText(),"inference_model")
        #print(model_dir) 
        #圖像縮放
        self.isscaled=self.cboxscaled.isChecked()                         
    
        if taskid==0:#預覽
            if self.isimg:
                self.fileName, self.fileType = QtWidgets.QFileDialog.getOpenFileName(self, '選擇','', "圖像文件(*.jpg *.png)")
                if self.fileName!="":
                    frame=cv2.imread(self.fileName)                            
                    self.imgshow(frame,self.lblsrc)            
            else:
                 self.Display()
        else:#預測
            if self.iscam or self.isipcam:
                if task in ["face-model"] :
                    self.cls_videodetect(model_dir,isface=True)
                if task in ["cls-model"]:
                    self.cls_videodetect(model_dir,isface=False)
                if  task in ["det-model"]:
                    self.det_videodetect(model_dir)
    
            if self.isimg:
                self.fileName, self.fileType = QtWidgets.QFileDialog.getOpenFileName(self, '選擇','', "圖像文件(*.jpg *.png)")
                if self.fileName!="":
                    frame=cv2.imread(self.fileName)                            
                    self.imgshow(frame,self.lblsrc)            
    
                #print(task)
                if task in ["face-model"]:#調用圖像分類-人臉檢測與識別任務,結果顯示在dst上                
                    self.cls_imgpredict(model_dir,self.fileName,isface=True)#預測返回結果
    
                if task in ["cls-model"]: #調用圖像分類-貓狗分類
                    self.cls_imgpredict(model_dir,self.fileName,isface=False)#預測返回結果
    
                if  task in ["det-model"]:#調用目標檢測-人頭檢測
                    self.det_imgpredict(model_dir,self.fileName)
    
            if self.isvideo:
                self.fileName, self.fileType = QtWidgets.QFileDialog.getOpenFileName(self, '選擇視頻文件','', '*.mp4')
                if self.fileName!="":
                    if task in ["face-model"] :
                        self.cls_videodetect(model_dir,self.fileName,isface=True)
                    if task in ["cls-model"]:
                        self.cls_videodetect(model_dir,self.fileName,isface=False)
                    if  task in ["det-model"]:
                        self.det_videodetect(model_dir,self.fileName)

    貓狗分類預測

    四、拍照、錄制功能

    #開啟拍照或錄制 
    def snap(self):
        if self.cap.isOpened():
            self.issnap=True
    def rec(self):
        if self.cap.isOpened():
            self.isrec =not self.isrec
            if self.isrec:
                #創建video writer
                ret,frame=self.cap.read()
                self.createVideo(frame)
                self.btnrec.setText("停止錄制")    
                self.statusBar().showMessage("文件錄制中…………\n")                    
            else:
                self.video.release() #釋放video writer
                self.btnrec.setText("開始錄制") 
                self.statusBar().showMessage("文件保存在output目錄里\n")     
    
    #攝像頭或監控拍照
    def imgsave(self,frame):
        if self.rbtcam.isChecked() or self.rbtipcam.isChecked():
            fname=datetime.datetime.now().strftime("%Y%m%d%H%M%S")+".jpg"
            if not os.path.exists("output"):
                os.makedirs("output")                
            cv2.imwrite(os.path.join("output",fname),frame)
            self.statusBar().showMessage(fname+"文件保存在output目錄里\n")
            self.issnap=False            
    #攝像頭或監控錄制            
    def createVideo(self,frame):
        if self.rbtcam.isChecked() or self.rbtipcam.isChecked():
            fname=datetime.datetime.now().strftime("%Y%m%d%H%M%S")+".mp4"
            if not os.path.exists("output"):
                os.makedirs("output")
            self.video=cv2.VideoWriter(
                filename=os.path.join("output",fname),
                fourcc=cv2.VideoWriter_fourcc(*"mp4v"),
                fps=15,
                frameSize=(frame.shape[1],frame.shape[0])
                ) 
            

    注:這里要注意保存錄像的文件名命名格式,避免文件名重置。

網站首頁   |    關于我們   |    公司新聞   |    產品方案   |    用戶案例   |    售后服務   |    合作伙伴   |    人才招聘   |   

友情鏈接: 餐飲加盟

地址:北京市海淀區    電話:010-     郵箱:@126.com

備案號:冀ICP備2024067069號-3 北京科技有限公司版權所有