一.情况一
源代码:
-
def selectImage(self):
-
'''
-
功能:选取需要增强的夜间图像,即从电脑中选取图像并显示在label上
-
'''
-
#参数三是默认路径(自己随便设),参数四是过滤哪些文件,比如下面就是只显示jpg或者png文件
-
#fname,a=QFileDialog.getOpenFileName(self,'打开文件','.','图像文件(*.jpg *.png)')
-
self.fname, ok = QFileDialog.getOpenFileName(self, '打开文件', 'D:/', '图像文件(*.jpg *.png)')
-
#print(fname) fname是图片完整路径
-
#在标签上放置图片
-
self.readLabel.setPixmap(QPixmap(self.fname))
-
-
return
bug原因:
应该是fname 没有获取引发后面的代码异常。
解决办法:
在QFileDialog.getSaveFileName函数后面打代码前先确保第二个参数不为空,如下
-
def selectImage(self):
-
'''
-
功能:选取需要增强的夜间图像,即从电脑中选取图像并显示在label上
-
'''
-
#参数三是默认路径(自己随便设),参数四是过滤哪些文件,比如下面就是只显示jpg或者png文件
-
#fname,a=QFileDialog.getOpenFileName(self,'打开文件','.','图像文件(*.jpg *.png)')
-
self.fname, ok = QFileDialog.getOpenFileName(self, '打开文件', 'D:/', '图像文件(*.jpg *.png)')
-
#print(fname) fname是图片完整路径
-
#在标签上放置图片
-
print(ok)
-
if ok:
-
self.readLabel.setPixmap(QPixmap(self.fname))
-
-
return
完美解决!
二.情况二
源代码:
-
def enhancement(self):
-
'''
-
功能:展示增强之后的图像
-
'''
-
img = cv.imread(self.fname)
-
self.ans = MSRCP(img, sigma_list=[15, 80, 200], low_clip=0.01, high_clip=0.99)
-
cv.imshow('MSRCP', self.ans)
-
cv.waitKey(0)
bug原因:
self.fname是在上那个函数中接受选取路径的,如果没有选取路径那么点击与下面这个函数相关的按钮,也会造成异常退出的情况,因为这是self.fname啥也没接收啊,就是还没被定义!
解决办法:
所以我们在窗口类,也就是这俩槽函数外面将此变量定义一下,然后再在槽函数里判断一下!如下
-
def enhancement(self):
-
'''
-
功能:展示增强之后的图像
-
'''
-
if self.fname is not None:
-
img = cv.imread(self.fname)
-
self.ans = MSRCP(img, sigma_list=[15, 80, 200], low_clip=0.01, high_clip=0.99)
-
cv.imshow('MSRCP', self.ans)
-
cv.waitKey(0)
文章来源: blog.csdn.net,作者:油炸冰淇凌,版权归原作者所有,如需转载,请联系作者。
原文链接:blog.csdn.net/weixin_44593822/article/details/114792440