认识pycharm和python

目录

认识python和pycharm

一、读入(新建&打开)

1.存放

2.前置工作

3.新建&打开项目

二、认识python的库

1.导入库

2.调用库

3.阅读函数功能

三、路径

1.读取/保存文件

2.绝对路径

3.相对路径

课后练习

1.库的调用练习

题目:

解题:

a.人脸识别模型:

b.调用摄像头的代码:

c.改成本地运行的图片和视频

以下是调用并显示本地视频的代码:

以下是调用并显示本地图片的代码:

参考资料(对题目中代码函数的解释):

a.CascadeClassifier—级联分类器

b.可选的人脸检测模型(区别是检测速度和精度不同):

c.cv2.VideoCapture

d.cv2.cvtColor()

e.cv2.rectangle

f.cap.release()

g.cv2.destroyAllWindows()

2.读取文件练习


认识python和pycharm

引言:python作为一种编程语言,是学习cv的主要工具,主要用python进行库的调用。

一、读入(新建&打开)

1.存放

在电脑硬盘中创建一个文件夹存放所有python项目,每个项目存放在不同的子文件夹里。

a.项目存放的硬盘建议为C盘以外的硬盘;

b.文件夹命名避免出现中文。

2.前置工作

进入pycharm后先进行虚拟环境配置。

8d47702e4f364856ab5b4cf1a950be1a.png

3.新建&打开项目

①点击pycharm左上角的File

②New Project   新建项目

    Open              打开项目

de5c816b97814fce882f6d021317064c.png

③打开预先设置的文件夹或新建文件夹

④右键创建子项目

New-Directory   创建文件夹

New-Python File   创建Python文件

b2b4314f906b4085b0981fc43a4ba7e0.png

※Directory(文件夹)与Python Package(Python包)的区别:

①文件夹:

       a.文件夹是操作系统中的标准目录,用于存储文件和子文件夹。

       b.在PyCharm中,可以将文件夹添加到项目中,并将文件放在文件夹中。文件夹通常用于组织项目文件,但它们不是Python模块或包。

      c.在Python代码中,无法通过import语句导入文件夹内的内容。
②Python包

       a.Python包是一种特殊的目录结构,它包含一个名为__init__.py的特殊文件,用于表示该目录是一个包。
        b.包内可以包含模块(Python文件)和子包(其他包)。这使得代码组织更加有层次和结构。
        c.Python包允许使用import语句导入包内的模块和子包,这样可以更好地组织和封装代码。

二、认识python的库

1.导入库

※一般不用特意导入,除非报错提示缺失该库。

导入流程:例如缺失math库时点击pycharm的Terminal,进入控制台,输入命令pip install math行安装。

92b8920d97ca46a09de829aa41c1e1b8.png

※正常下载链接外网,常出现下载过慢或失败的情况,建议导入清华源下载(清华源可能缺少某些最新版本,可以调用其他源下载)

永久替换服务器为清华镜像源:

pip3 install pip -U
pip3 config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple
# "pip install pip -U" 是用于执行升级pip的命令;

临时调用某个源(如清华源):

pip install -i https://pypi.tuna.tsinghua.edu.cn/simple xxx
# 这里注意,xxx是需要下载的包的名字,例如:
# pip install -i https://pypi.tuna.tsinghua.edu.cn/simple torch

2.调用库

格式:import...和from...import...

举例:(调用math库中的sqrt求平方根)

ff916d1f1b434d58927ea1cbb69cc1b0.png

3.阅读函数功能

python通过调用各种库及其中的函数实现功能,了解函数是必要的。

鼠标浮在对应函数上当,会弹出简介。4ecc7b98d27c476a95aed91fbc75f12e.png

※对python了解到一定程度后可以进行重要源码的学习,Ctrl+左键点击函数,会跳转到源码界面。

三、路径

1.读取/保存文件

注意文件的绝对路径和相对路径。

2.绝对路径

绝对路径:从本地硬盘到文件位置

3.相对路径

从本文件夹内读取

“.\”表示Python文件所在,可以快捷输入文件名访问

课后练习

1.库的调用练习

题目:

安装好cv库( pip install opencv-python-headless ,我的是4.6.0)后调用练习,复制粘贴以下代码到pycharm中运行调试

import cv2

face_cascade = cv2.CascadeClassifier(cv2.data.haarcascades + 'haarcascade_frontalface_default.xml')
cap = cv2.VideoCapture(0)

while True:
    ret, frame = cap.read()
    gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)
    faces = face_cascade.detectMultiScale(gray, scaleFactor=1.1, minNeighbors=5, minSize=(30, 30))
    for (x, y, w, h) in faces:
        cv2.rectangle(frame, (x, y), (x + w, y + h), (0, 255, 0), 2)
    cv2.imshow('Face Detection', frame)

    # 按'q'键或'esc'退出循环
    key = cv2.waitKey(1) & 0xFF
    if key == ord('q') or key == 27:
        break

cap.release()
cv2.destroyAllWindows()

思考并尝试查阅资料解决:

程序是调用了什么模型才可以运行人脸识别这一功能?并思考什么代码决定了本地调用了视频摄像头?如何改成本地运行的图片/视频?

解题:

a.人脸识别模型:

haarcascade_frontalface_default.xml

b.调用摄像头的代码:

cap = cv2.VideoCapture(0)

cv2.VideoCapture
#原型:VideoCapture(*args,**kwargs)
#作用:初始化VideoCapture类并利用构造函数读入该视频的当前帧。
#参数:一般仅填入一个,即文件名。如果填入整数,则打开对应的捕获设备ID。若为0,则打开默认摄像头。

c.改成本地运行的图片和视频

可用函数:

#cv2.imread(filename, flags) :读取加载图片
#cv2.imshow(winname, mat) : 显示图片
#cv2.waitKey() : 等待图片的关闭
#cv2.imwrite(filename, img) : 保存图片

※目前不会python,AI写的

以下是调用并显示本地视频的代码:


import cv2
# 读取本地视频并循环读取帧
cap = cv2.VideoCapture('video.mp4')
while True:
    ret, frame = cap.read()
    if not ret:
        break
    cv2.imshow('Video Frame', frame)
    if cv2.waitKey(1) & 0xFF == ord('q'):
        break
# 释放资源并关闭窗口
cap.release()
cv2.destroyAllWindows()
在这个代码中,我们首先使用cv2.VideoCapture()函数读取本地视频,并在一个无限循环中读取每一帧,并使用cv2.imshow()函数将其显示在名为“Video Frame”的窗口中。如果用户按下“q”键,则退出循环并释放资源,最后关闭所有窗口。

以下是调用并显示本地图片的代码:


import cv2
# 读取本地图片并显示
img = cv2.imread('image.jpg')
cv2.imshow('Image', img)
cv2.waitKey(0)
cv2.destroyAllWindows()
在这个代码中,我们使用cv2.imread()函数读取本地图片,并使用cv2.imshow()函数将其显示在名为“Image”的窗口中。然后,我们使用cv2.waitKey()函数等待用户按下任意键后,使用cv2.destroyAllWindows()函数关闭所有窗口。

4ab2ce3700b6438f8ff32e2120f440ea.png

参考资料(对题目中代码函数的解释):

a.CascadeClassifier—级联分类器

CascadeClassifier就是opencv下objdetect模块中用来做目标检测的级联分类器的一个类,它可以帮助我们检测例如车牌、眼睛、人脸等物体。它的大概原理就是判别某个物体是否属于某个分类。以人脸为例,我们可以把眼睛、鼻子、眉毛、嘴巴等属性定义成一个分类器,如果检测到一个模型符合定义人脸的所有属性,那么就认为它是一个人脸

b.可选的人脸检测模型(区别是检测速度和精度不同):


#haarcascade_frontalface_alt.xml
#haarcascade_frontalface_alt2.xml
#haarcascade_frontalface_alt_tree.xml
#haarcascade_frontalface_default.xml
#haarcascade_profileface.xml

c.cv2.VideoCapture

#cv2.VideoCapture
#原型:VideoCapture(*args,**kwargs)
#作用:初始化VideoCapture类并利用构造函数读入该视频的当前帧。
#参数:一般仅填入一个,即文件名。如果填入整数,则打开对应的捕获设备ID。若为0,则打开默认摄像头。

d.cv2.cvtColor()

#cv2.cvtColor() #图像颜色空间转换
#img2 = cv2.cvtColor(img,cv2.COLOR_RGB2GRAY) #灰度化:彩色图像转为灰度图像
#img3 = cv2.cvtColor(img,cv2.COLOR_GRAY2RGB) #彩色化:灰度图像转为彩色图像
# cv2.COLOR_X2Y,其中X,Y = RGB, BGR, GRAY, HSV, YCrCb, XYZ, Lab, Luv, HLS

e.cv2.rectangle

#cv2.rectangle(img, (x,y), (x+w,y+h), (0,255,0), 2) 

#画出矩行:img原图、(x,y)是矩阵的左上点坐标、(x+w,y+h)是矩阵的右下点坐标

# (0,255,0)是画线对应的rgb颜色、2是所画的线的宽度。

f.cap.release()

#cap.release()是用来停止捕获视频。

g.cv2.destroyAllWindows()

#cv2.destroyAllWindows():销毁所有窗口

2.读取文件练习

通过相对路径与绝对路径,完成算数练习。

读取11.csv和22.csv,求11.csv中的最小值和22.csv的最大值相加(答案:1000)

1dcc540c0dc940ac857e2b4435714396.png

import pandas as pd
# 读取第一个表格
df1 = pd.read_csv('11.csv')
# 获取最小值
min_value = df1.min().min()
# 读取第二个表格
df2 = pd.read_csv('22.csv')
# 获取最大值
max_value = df2.max().max()
# 相加
result = min_value + max_value
print(result)

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值