• dragfils


    import sys
    import os
    from PyQt5.Qt import *
    from PyQt5.QtGui import *
    from PyQt5.QtCore import *
    import cv2
    import numpy as np
    class TestListView(QListWidget):
        dropped = pyqtSignal(list)
        def __init__(self, type, parent=None):
            super(TestListView, self).__init__(parent)
            self.setAcceptDrops(True)
            self.setIconSize(QSize(72, 72))
        def dragEnterEvent(self, event):
            if event.mimeData().hasUrls:
                event.accept()
            else:
                event.ignore()
        def dragMoveEvent(self, event):
            if event.mimeData().hasUrls:
                event.setDropAction(Qt.CopyAction)
                event.accept()
            else:
                event.ignore()
        def dropEvent(self, event):
            if event.mimeData().hasUrls:
                event.setDropAction(Qt.CopyAction)
                event.accept()
                links = []
                for url in event.mimeData().urls():
                    links.append(str(url.toLocalFile()))
                self.dropped.emit(links)
            else:
                event.ignore()
    class MainForm(QMainWindow):
        def __init__(self, parent=None):
            super(MainForm, self).__init__(parent)
            self.view = TestListView(self)
            self.view.dropped.connect(self.pictureDropped)
            self.setCentralWidget(self.view)
            self.file1=""
            self.file2=""
            self.urlnum=0
        def pictureDropped(self, l):
            print(self.urlnum)
            if(self.urlnum!=0 and self.urlnum%2==0):
                print("clear")
                self.view.clear()
                self.file1=""
                self.file2=""
            for url in l:
                if os.path.exists(url):
                    print(url)
                    if(self.file1=="" and self.file2==""):
                        self.file1=url
                    else:
                        self.file2=url
                    if(self.file1 is not "" and self.file2 is not ""):
                        img1=cv2.imread(self.file1,0)
                        img1=cv2.copyMakeBorder(img1, 5, 5, 4, 4, cv2.BORDER_CONSTANT, value=0)
                        img1=cv2.cvtColor(img1, cv2.COLOR_GRAY2BGR)
                        img2=cv2.imread(self.file2,0)
                        img2=cv2.copyMakeBorder(img2, 5, 5, 4, 4, cv2.BORDER_CONSTANT, value=0)
                        img2=cv2.cvtColor(img2, cv2.COLOR_GRAY2BGR)
                        stkimg=np.vstack([img1,img2])
                        strname="./stack/"+str(self.urlnum/2)+".jpg"
                        cv2.imwrite(strname,stkimg)
                        #cv2.waitKey(0)
                       
                    self.urlnum=self.urlnum+1               
                    icon = QIcon(url)
                    pixmap = icon.pixmap(72, 72)
                    icon = QIcon(pixmap)
                    item = QListWidgetItem(url, self.view)
                    item.setIcon(icon)
                    item.setStatusTip(url)
    def main():
        app = QApplication(sys.argv)
        form = MainForm()
        form.show()
        app.exec_()
    if __name__ == '__main__':
        main()
     
  • 相关阅读:
    10K+,深度学习论文、代码最全汇总!
    机器学习人气开源项目推荐
    目标检测入门
    论文 | YOLO(You Only Look Once)目标检测
    基于深度学习的「目标检测」算法综述
    皮卡丘检测器-CNN目标检测入门教程
    GitHub万星的ML算法面试大全
    物体检测之FPN及Mask R-CNN
    新型DenseBody框架:一张照片获得3D人体信息
    数据挖掘相关领域竞赛推荐
  • 原文地址:https://www.cnblogs.com/skydaddy/p/11715647.html
Copyright © 2020-2023  润新知