vscode上运行python程序所遇问题集合(人脸识别毕设)

问题一:在python3.6+dlib+opencv环境配置成功后,想要实现人脸检测功能,把dlib代码复制,按F5运行时出现launch.json错误。

解决方案:

问题二:dlib中python语言人脸识别中语句问题os.path.join(faces_folder_path, "*.jpg")

解决方案:

os.path.join()函数用于路径拼接文件路径。 
os.path.join()函数中可以传入多个路径:

会从第一个以”/”开头的参数开始拼接,之前的参数全部丢弃。

以上一种情况为先。在上一种情况确保情况下,若出现”./”开头的参数,会从”./”开头的参数的上一个参数开始拼接。

import os

print("1:",os.path.join('aaaa','/bbbb','ccccc.txt'))

print("2:",os.path.join('/aaaa','/bbbb','/ccccc.txt'))

print("3:",os.path.join('aaaa','./bbb','ccccc.txt'))

输出为 

1: /bbbb\ccccc.txt
2: /ccccc.txt
3: aaaa\./bbb\ccccc.txt

 

问题三:在windows用命令行创建新文件

解决方案:

①window+R打开命令窗口输入cmd

②输入  D:  (即进入D盘),输入dir  (即查看D盘所有文件)

③输入cd python(即进入python文件夹)

③输入md faces_folder_path即在python中添加faces_folder_path文件夹

 

问题四:from skimage import io模块出错,未安装skimage模块

解决方案:skimage模块全称scikit-image SciKit。

基于python脚本语言开发的数字图片处理包,比如PIL,Pillow, opencv, scikit-image等。
PIL和Pillow只提供最基础的数字图像处理,功能有限;opencv实际上是一个c++库,只是提供了python接口,更新速度非常慢。scikit-image是基于scipy的一款图像处理包,它将图片作为numpy数组进行处理,正好与matlab一样,因此,我们最终选择scikit-image进行数字图像处理。

因为本次项目用opencv实现,所以先尝试用opencv,暂且放下skimage.

 

问题五:opencv的图像处理,图片读取函数的调用

使用cv2.imread(),cv2.imshow(),cv2.imwrite()读取,显示和保存图像

1、 cv2.imread():读入图片,共两个参数,第一个参数为要读入的图片文件名,第二个参数为如何读取图片,包括cv2.IMREAD_COLOR:读入一副彩色图片;cv2.IMREAD_GRAYSCALE:以灰度模式读入图片;cv2.IMREAD_UNCHANGED:读入一幅图片,并包括其alpha通道。

2、cv2.imshow():创建一个窗口显示图片,共两个参数,第一个参数表示窗口名字,可以创建多个窗口中,但是每个窗口不能重名;第二个参数是读入的图片。

3、cv2.waitKey():键盘绑定函数,共一个参数,表示等待毫秒数,将等待特定的几毫秒,看键盘是否有输入,返回值为ASCII值。如果其参数为0,则表示无限期的等待键盘输入。

4、cv2.destroyAllWindows():删除建立的全部窗口。

5、cv2.destroyWindows():删除指定的窗口。

6、cv2.imwrite():保存图片,共两个参数,第一个为保存文件名,第二个为读入图片。

 

#导入cv模块
import cv2 as cv
 
#读取图像,支持 bmp、jpg、png、tiff 等常用格式
img = cv.imread("D:/Test/2.jpg")
# "D:\Test\2.jpg"           /反向就正确了
#创建窗口并显示图像
cv.namedWindow("Image")
cv.imshow("Image",img)
cv.waitKey(0)
#释放窗口
cv.destroyAllWindows()
 

问题六:CV2中一直有红色下划线,并显示没有imread等模块

解决方案:开头添加语句  from cv2 import cv2   则问题消失。

 

人脸检测已成功,代码借鉴网址:https://blog.csdn.net/hongbin_xu/article/details/78347484

 

问题七:python语言执行的几种方式

①使用IDLE即pycharm

②如果配置好path路径,就可以用命令行解释器实现

③在vscode上运行python文件,命令是:python    ***.py    <路径名>

 

问题八:代码逐行理解过程

sys.argv参数用法解析:https://blog.csdn.net/zengxyuyu/article/details/53047074

  1. Sys.argv[]是用来获取命令行参数的,它是个列表.
  2. len(sys.argv)得到参数的个数
  3. sys.argv[0]获得的是脚本的名字

 

 

 

 

 

 

 

 

 

你可能感兴趣的:(vscode上运行python程序所遇问题集合(人脸识别毕设))