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
在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对图片进行处理,具体操作可以根据实际需求进行调整。