毕业设计 遇到的部分问题

这里写目录标题

  • 一、问题
    • 1、pyqt中信息与槽
    • 2、默认图片
    • 3、全局变量不起作用
    • 4、点击打开图片如果没有选择,则会出现路径为空
    • 5、只要下拉列表或者参数有变 就能立即调整去雾
    • 6、imread读取中文路径失败
    • 7、打包成exe文件后背景图片不显示的问题

一、问题

1、pyqt中信息与槽

需要在qtdesigner中编写槽,并与具体的按钮等进行绑定
如何绑定可以见之前自己写的博客。
另外,事件具体做什么需要自己在py文件中编写。

2、默认图片

自己的程序上需要有默认图片,自己的做法是定义一个全局变量path,先指定一张图片地址即可。
在pyqt中,不知道为什么在ui生成的py文件中编写显示图片就显示不出来,
之后在自己的主文件py中编写就可以显示。
在这里插入图片描述

3、全局变量不起作用

在定义全局字典时,一直不起作用。
后来发现原因
如在外部自己定义了一个参数,名字为path,之后在具体的方法内又设置了一个参数path,同名,与c语言一样,它会将方法内部这个理解为局部变量。
解决方法:如果方法内与外部的全局变量一致,需要在方法内部的参数前加上global这个关键字。

4、点击打开图片如果没有选择,则会出现路径为空

解决办法:先把之前图片的路径保存下来,如果当前路径为空,就把之前的路径赋给当前这个path

5、只要下拉列表或者参数有变 就能立即调整去雾

只要在更改参数的槽里 最后添加上去雾算法即可。
同理,只要下拉列表的值变化,只要在相应的槽里添加上对应方法即可。

6、imread读取中文路径失败

注意中文路径opencv_python读取图片,imread()会读取失败,使用下面方式读取中文路径图片。

img = cv2.imdecode(np.fromfile(img_path, dtype=np.uint8), -1)  # 读入完整图片,见下面解释
img = cv2.imdecode(np.fromfile(img_path, dtype=np.uint8), 0)  # 读成灰度
img = cv2.imdecode(np.fromfile(img_path, dtype=np.uint8), 1)  # 读成彩图

其中cv2.imdecode后面的flag -1应该是和cv2.imread一样的。

使用函数cv2.imread(filepath, flags)读入一幅图片:

filepath: 要读入图片的路径。

flags: 读入图片的标志:

cv2.IMREAD_UNCHANGED(-1): 顾名思义,读入完整图片,包括alpha通道。如果数据不含alpha通道则灰图读成(H, W),彩图读成(H, W, 3)。

cv2.IMREAD_GRAYSCALE(0): 读入灰度图片,形状为(H, W)。彩图也读成灰的形状。

cv2.IMREAD_COLOR(1): 默认参数, 读入一幅彩色图片,忽略alpha通道, 形状为(H, W, 3)。灰图也读成彩的形状。

有alpha通道的图片还没试验,不过看来读成-1比较稳妥。

7、打包成exe文件后背景图片不显示的问题

①在打包之后的文件后加上image文件 放入自己需要的照片可以
②按照此博客打包也可以!!

你可能感兴趣的:(opencv,python,计算机视觉)