浅谈Opencv(下)

Opencv(下)

图像阈值化处理

[0,255]

<=127的转化为0 >=127转化为1

ret,dst = cv2.threshold(src,thresh,maxval,type)

src:源图像(需要阈值化处理的图像)

maxval:当像素超过了阈值,(小于阈值)所赋予的值,否则取0

ret:阈值返回值(阈值设定的是多少)

dst:输出的图像

type: (1) cv2.THRESH_BINARY:当像素点大于阈值时,取指定的255,小于等于阈值时,取0

(2)cv2.THRESH_BINARY_INV:当像素点大于阈值时,取指定的0,小于等于阈值时,取255

注意事项:当阈值处理彩色图像时,出现粉色等颜色的原因在于BGR三通道的叠加

(3)cv2.THRESH_TRUNC:超过阈值则取阈值,低于阈值,则取自身

(4)cv2.THRESH_TOZERO:超过阈值不变,低于阈值取0

(5)cv2.THRESH_TOZERO_INV:超过阈值变为0,低于阈值不变

import cv2
path = r'./pic.jpg'
img = cv2.imread(path,1)
ret,img1 = cv2.threshold(img,127,255,cv2.THRESH_TRUNC)
cv2.imshow('img',img1)
cv2.waitKey(0)
均值滤波

cv2.blur(src,k)

src:源图像

kernel:大小(选择多大的矩阵进行移动) 【3*3】最常见

import cv2
path = r'./pic.jpg'
img = cv2.imread(path,1)
new_img = cv2.blur(img,(3,3))
cv2.imshow('img',new_img)
cv2.waitKey(0)
方框滤波

cv2.boxFilter(src,depth)

src:源图像

depth:图像的深度,填-1,表示与源图像深度相同。

ksize:核大小(3*3)or(5 * 5)

normalize:是否进行归一化

0:false (求和,像素点溢出,取255)

1: True (求均值,与均值滤波相同)

import cv2
path = r'./pic.jpg'
img = cv2.imread(path,1)
new_img = cv2.boxFilter(img,-1,(2,2))
cv2.imshow('img',new_img)
cv2.waitKey(0)
高斯滤波

考虑了权重的问题

cv2.GaussianBlur(src,ksize)

src:源图像

ksize:(3*3) (5 *5) 在高斯滤波中必须为奇数

sigmaX,sigmaY:高斯核函数在X或Y方向上的标准偏差【控制权重】

sigmaX = 0, sigmaX = 0.3*((ksize-1) *0.5-1)+0.8

import cv2
path = r'./pic.jpg'
img = cv2.imread(path,1)
new_img = cv2.GaussianBlur(img,(5,5),0)
cv2.imshow('img',new_img)
cv2.waitKey(0)
中值滤波

cv2.medianBlur(src,ksize)

src:源图像

ksize:核大小 只能传递Int

import cv2
path = r'./pic.jpg'
img = cv2.imread(path,1)
new_img = cv2.medianBlur(img,3)
cv2.imshow('img',new_img)
cv2.waitKey(0)
图像的腐蚀

1、形态学转化主要针对于二值图像(黑白图像(非0即1))

2、卷积核

cv2.erode(src,kernel,iterations)

src:源图像

kernel:卷积核 (3*3)

iterations:迭代次数

import cv2
import numpy as np
path = r'./2.png'
img = cv2.imread(path,1)
kernal = np.ones((3,3),np.uint8)
new_img = cv2.erode(img,kernal,iterations=5)
cv2.imshow('img',new_img)
cv2.waitKey(0)
图像的膨胀

图像腐蚀的逆操作

cv2.dilate(src,kernel,iterations)

src:源图像

kernel:卷积核 (3*3)

iterations:迭代次数

import cv2
import numpy as np
path = r'./3.png'
img = cv2.imread(path,1)
kernal = np.ones((3,3),np.uint8)
new_img = cv2.dilate(img,kernal,iterations=5)
cv2.imshow('img',new_img)
cv2.waitKey(0)
图像的开运算

腐蚀:去除图片的噪声

膨胀:恢复原来的图片(没有噪声的)

开运算:腐蚀–》膨胀

cv2.morphologyEx(src,cv2.MORPH_OPEN,ksize)

src:源图像

cv2.MORPH_OPEN:开运算(先腐蚀后膨胀)

ksize:卷积核的大小(表示腐蚀及膨胀的大小)

import cv2
import numpy as np
path = r'./2.png'
img = cv2.imread(path,1)
kernal = np.ones((7,7),np.uint8)
new_img = cv2.morphologyEx(img,cv2.MORPH_OPEN,kernal)
cv2.imshow('img',new_img)
cv2.waitKey(0)
图像的闭运算

闭运算:就是先膨胀->再腐蚀

实质:还是为了去除噪声

cv2.morphologyEx(src,cv2.MORPH_CLOSE,ksize)

src:源图像

cv2.MORPH_OPEN:开运算(先腐蚀后膨胀)

ksize:卷积核的大小(表示腐蚀及膨胀的大小)

import cv2
import numpy as np
path = r'./close.png'
img = cv2.imread(path,1)
kernal = np.ones((7,7),np.uint8)
new_img = cv2.morphologyEx(img,cv2.MORPH_CLOSE,kernal)
cv2.imshow('img',new_img)
cv2.waitKey(0)
图像的梯度

目的:主要为了提取目标图像的轮廓

cv2.morphologyEx(src,cv2.MORPH_GRADIENT,k)

src:源图像

cv2.MORPH_GRADIENT:进行梯度运算(膨胀-腐蚀)

k:卷积核

import cv2
import numpy as np
path = r'./1.png'
img = cv2.imread(path,1)
# #膨胀操作
kernal = np.ones((3,3),np.uint8)
# img1 = cv2.dilate(img,kernal,iterations=5)
# #腐蚀操作
# img2 = cv2.erode(img,kernal,iterations=5)
# new_img = img1 - img2
new_img = cv2.morphologyEx(img,cv2.MORPH_GRADIENT,kernal)
cv2.imshow('img',new_img)
cv2.waitKey(0)
图像的礼帽操作

目的:为了提取图像中的噪声

本质:原始图像 - 开运算之后的图像

cv2.morphologyEx(src,cv2.MORPH_TOPHAT,k)

src:源图像

cv2.MORPH_TOPHAT:进行礼帽操作

k:卷积核

import cv2
import numpy as np
path = r'./close.png'
img = cv2.imread(path,1)
kernal = np.ones((5,5),np.uint8)
new_img = cv2.morphologyEx(img,cv2.MORPH_TOPHAT,kernal)
cv2.imshow('img',new_img)
cv2.waitKey(0)
图像的黑帽操作

目的:为了提取图像中的噪声

本质:闭运算 - 原始图像

cv2.morphologyEx(src,cv2.MORPH_BLACKHAT,k)

src:源图像

cv2.MORPH_BLACKHAT:进行黑帽操作

k:卷积核

import cv2
import numpy as np
path = r'./close.png'
img = cv2.imread(path,1)
kernal = np.ones((5,5),np.uint8)
new_img = cv2.morphologyEx(img,cv2.MORPH_BLACKHAT,kernal)
cv2.imshow('img',new_img)
cv2.waitKey(0)
发布了129 篇原创文章 · 获赞 148 · 访问量 2万+

猜你喜欢

转载自blog.csdn.net/matafeiyanll/article/details/105348389