Opencv 养成计划01(图像和视频的读取,图像阈值处理,图像平滑,形态学腐蚀操作)

Python3.7

Pythoncharm

第一天:install Opencv+图像的显示

(1)照片的显示

import cv2;

imgpath="C:/Users/vaj/Desktop/1.png";
img = cv2.imread(imgpath,0)#opencv读取的是GBR
cv2.imshow('Img',img)
k=cv2.waitKey(0)
if k==27:
    cv2.destroyAllWindows();
elif k==115:
    cv2.imread("C:/Users/vaj/Desktop/1.png",img)
    cv2.destroyAllWindows("123")
resized_img=cv2.resize(img,(int(img.shape[1]*2),int(img.shape[0]*2)))#
cv2.imshow("123",resized_img)
cv2.waitKey(0)

2.视频的读取和一些读图片处理的 基本操作


vc=cv2.VideoCapture("视频路径")
if vc.isOpened():
    open,frame=vc.read()#oepn为1 or 0,frame为每一帧图像
else:
    open=False
while open:
    ret,frame=vc.read()
    if frame is None:
        break
    if ret==True:
        gray=cv2.cvtColor(frame,cv2.COLOR_BGR2GRAY)
        cv2.imshow('result',gray)
        if cv2.waitKey(100) & 0xFF==27:
            break
vc.release()
cv2.destroyAllWindows()

#颜色通道提取
b,g,r=cv2.split(img)
#重组
img=cv2.merge((b,g,r))

#边界填充

#图像基本操作 img+10 表示每个像素点增加10,超过255自动取余; cv2.add(a,b)自动把两个图像像素进行相加,超过255自动取255

#更改shape
#img_dog=cv2.resize(img_dog,(500,414))#shape值为(414,500)
#res=cv2.resize(img,(0,0),fx=1,fy=3)#横坐标不变,纵坐标扩大三倍
#res=cv2.addWeighted(img_cat,0.4,img_dog,0.6,0)#0.4倍的cat像素+0.6倍dog像素+0(偏置)

(3)图像阈值处理

ret,dst=cv2.threshold(src,thresh,maxval,type)#src为输入图,thresh为阈值,maxval为当像素超过或小于阈值赋予的值,type为二值化类型

(4)图像平滑处理

#均值滤波
#简单地平均卷积操作
blur=cv2.blur(img,(3,3))#3*3的模板

#方框滤波
#可以选择是否归一化
box=cv2.boxFilter(img,-1,(3,3),normalize=True)#为True与均值滤波一毛一样,为False越界取255

#高斯滤波
#把与像素的远近考虑在内,有权重
aussian=cv2.GaussianBlur(img,(5,5),1)

#中值滤波
#把像素从小到大排列,取中间的值作为像素值
mesian=cv2.medianBlur(img,5)#椒盐噪声更适合

(5)图像腐蚀操作

kernel=np.ones((3,3),np.unit8)
dig_erosion=cv2.erode(img,kernel,iterations=1)#iterations为腐蚀次数,此操作为腐蚀
dilge_silate=cv2.dilate(dig_erosion,kernel,iterations=1)#膨胀

#开运算,闭运算
kernel=np.ones((3,3),np.unit8)
opening=cv2.morphologyEx(img,cv2.MORPH_OPEN,kernel)#先腐蚀在膨胀
closing=cv2.morphologyEx(img,cv2.MORPH_CLOSE,kernel)#先膨胀再腐蚀

#梯度运算,可以得到边界信息
gradient=cv2.morphologyEx(img,cv2.MORPH_GRADIENT,kernel)


#礼帽=原始-开运算
tophat=cv2.morphologyEx(img,cv2.MORPH_TOPHAT,kernel)
#黑帽=闭运算-原始
blackhat=cv2.morphologyEx(img,cv2.MORPH_BLACKHAT,kernel)
发布了35 篇原创文章 · 获赞 4 · 访问量 2338

猜你喜欢

转载自blog.csdn.net/devilangel2/article/details/104111653