关于#python#的问题:求将上述代码编为pyqt中的槽函数

def hist(img):
    [m,n]=img.shape
    out=[]
    a = 0
    for i in range(m):
        temp=0
        for j in range(n):
            temp=temp+img[i,j]
        out.append(temp)
    for i in range(m):
        if out[i]!=0:
            a=a+1

    return a


img = cv2.imread("")

求将上述代码编为pyqt中的槽函数,并且最后点击pushbutton能够输出的a在可视化窗口中输出显示出来。谢谢

import cv2
from PyQt5.QtCore import pyqtSlot, QObject


class MyObject(QObject):

    @pyqtSlot(str)
    def hist(self, img_path):
        img = cv2.imread(img_path)
        [m, n] = img.shape
        out = []
        a = 0
        for i in range(m):
            temp = 0
            for j in range(n):
                temp = temp + img[i, j]
            out.append(temp)
        for i in range(m):
            if out[i] != 0:
                a = a + 1
        return a

以下内容部分参考ChatGPT模型:


在PyQt中,可以将hist函数作为一个槽函数,具体代码如下:

import cv2
from PyQt5.QtCore import pyqtSlot
from PyQt5.QtGui import QImage, QPixmap
from PyQt5.QtWidgets import QMainWindow, QApplication
from ui_mainwindow import Ui_MainWindow

class MainWindow(QMainWindow, Ui_MainWindow):
    def __init__(self):
        super().__init__()
        self.setupUi(self)

    @pyqtSlot()
    def on_pushButton_clicked(self):
        img = cv2.imread('image.png', 0)
        [m, n] = img.shape
        out = []
        a = 0
        for i in range(m):
            temp = 0
            # 具体操作

其中,@pyqtSlot()表示将该函数作为槽函数。在这个例子中,我们在点击pushButton按钮时触发hist函数。在该函数中,我们可以使用OpenCV对图片进行处理,具体操作可以根据实际需求进行调整。


如果我的建议对您有帮助、请点击采纳、祝您生活愉快