import cv2 as cv
img=cv.imread(\'lena.png\')#不能有中文
gray_img=cv.cvtColor(img,code=cv.COLOR_BGR2GRAY)#转为灰度图
cv.imshow(\'input image\',img)#input image是创建的窗口
cv.imshow(\'gray image\',gray_img)#input image是创建的窗口
cv.waitKey(0)#无限等待 随便按下一个键 就可以退出
cv.destroyAllWindows()#使用完内存后释放
cv.imwrite(\'gray_image.png\',gray_img)

import cv2 as cv
img=cv.imread(\'lena.png\')#不能有中文
#gray_img=cv.cvtColor(img,code=cv.COLOR_BGR2GRAY)#转为灰度图像
#修改图像的尺寸
resize_img=cv.resize(img,dsize=(200,200))
#resize_img=cv.resize(img,0.5)
cv.imshow(\'input image\',img)#input image是创建的窗口
print(img.shape)
cv.imshow(\'resize image\',resize_img)#input image是创建的窗口
print(resize_img.shape)
#只有输入q的时候,退出
while True:
if ord(\'q\')==cv.waitKey(0): #ord返回的是二进制
break
#cv.waitKey(0)#无限等待 随便按下一个键 就可以退出
cv.destroyAllWindows()#使用完内存后释放
#cv.imwrite(\'gray_image.png\',gray_img)

import cv2 as cv
img=cv.imread(\'lena.png\')#不能有中文
#cv.imshow(\'input image\',img)#input image是创建的窗口
#画矩形
x,y,w,h=180,180,50,50
cv.rectangle(img,(x,y,x+w,y+h),color=(0,255,0),thickness=2)
#画圆
#center原点的坐标 radius为半径
cv.circle(img,center=(x+w//2,y+h//2),radius=w//2,color=(0,0,255),thickness=2)
#python中整除是//
cv.imshow(\'output image\',img)
cv.waitKey(0)#无限等待 随便按下一个键 就可以退出
cv.destroyAllWindows()#使用完内存后释放

- 人脸检测
- 在D:\python\Lib\site-packages\cv2\data\haarcascade_frontalface_default.xml
- 有不同的检测器
import cv2 as cv
def fac_detect_demo():
gray=cv.cvtColor(img,cv.COLOR_BGR2GRAY)
#加载特征数据
fac_detector=cv.CascadeClassifier(\'D:\python\Lib\site-packages\cv2\data\haarcascade_frontalface_default.xml\')
#返回脸部信息
face=fac_detector.detectMultiScale(gray)
#在脸部信息上面画矩形 标注出来
for x,y,w,h in face:
cv.rectangle(img,(x,y),(x+w,y+h),color=(255,255,0),thickness=2)
cv.imshow(\'result\',img)
img=cv.imread(\'lena.png\')#不能有中文
#cv.imshow(\'input image\',img)#input image是创建的窗口
#调用方法
fac_detect_demo()
cv.waitKey(0)#无限等待 随便按下一个键 就可以退出
cv.destroyAllWindows()#使用完内存后释放

import cv2 as cv
def fac_detect_demo():
gray=cv.cvtColor(img,cv.COLOR_BGR2GRAY)
#加载特征数据
fac_detector=cv.CascadeClassifier(\'D:\python\Lib\site-packages\cv2\data\haarcascade_frontalface_default.xml\')
#返回脸部信息
face=fac_detector.detectMultiScale(gray)
#在脸部信息上面画矩形 标注出来
for x,y,w,h in face:
cv.rectangle(img,(x,y),(x+w,y+h),color=(255,255,0),thickness=2)
cv.circle(img,center=(x+w//2,y+h//2),radius=w//2,color=(124,156,55),thickness=2)
cv.imshow(\'result\',img)
img=cv.imread(\'face.jpeg\')#不能有中文
#cv.imshow(\'input image\',img)#input image是创建的窗口
#调用方法
fac_detect_demo()
cv.waitKey(0)#无限等待 随便按下一个键 就可以退出
cv.destroyAllWindows()#使用完内存后释放

import cv2 as cv
def fac_detect_demo():
gray=cv.cvtColor(img,cv.COLOR_BGR2GRAY)
#加载特征数据
fac_detector=cv.CascadeClassifier(\'D:\python\Lib\site-packages\cv2\data\haarcascade_frontalface_default.xml\')
#返回脸部信息
face=fac_detector.detectMultiScale(gray,scaleFactor=1.1,minNeighbors=3,minSize=(60,60))
#scaleFactor为检测的范围缩放比例
#minNeighbors检测的最小次数
#最小的检测尺寸为(60,60)
#maxSize为最大的检测尺寸
#在脸部信息上面画矩形 标注出来
for x,y,w,h in face:
cv.rectangle(img,(x,y),(x+w,y+h),color=(255,255,0),thickness=2)
cv.circle(img,center=(x+w//2,y+h//2),radius=w//2,color=(124,156,55),thickness=2)
cv.imshow(\'result\',img)
img=cv.imread(\'face.jpeg\')#不能有中文
#cv.imshow(\'input image\',img)#input image是创建的窗口
#调用方法
fac_detect_demo()
cv.waitKey(0)#无限等待 随便按下一个键 就可以退出
cv.destroyAllWindows()#使用完内存后释放