ROI

ROI (Region of Interest) 即感兴趣区域, 就是在图像中分析的重点.

# 读取图片
img = cv2.imread("girl2.png")
# ROI
face = img[100:750, 1000:1600]
# 获取灰度图
face_gray = cv2.cvtColor(face, cv2.COLOR_BGR2GRAY)
face_gray = cv2.cvtColor(face_gray, cv2.COLOR_GRAY2BGR)

# 用灰度图替换脸
img[100:750, 1000:1600] = face_gray

# 图片展示
cv2.imshow("ROI", img)
cv2.waitKey(0)
cv2.destroyAllWindows()

# 保存图片
cv2.imwrite("ROI.jpg", img)

图像处理06  泛洪---滤波器_保存图片

 

 

图像处理06  泛洪---滤波器_保存图片_02

 

 

 

 

 

 

 

 

 

 

泛洪填充

泛洪填充算法 (Flood Fill Algorithm), 是从一个点开始附近的像素点填充成新的颜色, 直到封闭区内所有的像素点都被填充新颜色为止

格式:

cv2.floodFill(image, mask, seedPoint, newVal, loDiff=None, upDiff=None, flags=None)

参数:

image: 输入图片
mask: 掩码, 比 image 长宽高 2
seedPoint: 泛洪算法的起始点
newVal: 重绘区域的新值 (颜色)
loDiff: seePoint - loDiff 下限
upDiff: seePoint - upDiff 上限
flags: 操作标志符
LOODFILL_FIXED_RANGE: 改变图像, 泛洪填充
FLOODFILL_MASK_ONLY: 不改变图像, 只填充 mask 本身, 忽略新的颜色值参数

def flood_fill(image):
"""泛洪"""

# 深拷贝
image_copy = image.copy()

# 获取高宽
h, w = image.shape[:2]

# 获取mask
mask = np.zeros([h + 2, w + 2], np.uint8)

# 泛洪
cv2.floodFill(image_copy, mask, (1000, 200), (0, 255, 0), (30, 30, 30), (50, 50, 50), cv2.FLOODFILL_FIXED_RANGE)

# 图片展示
cv2.imshow("flood_fill", image_copy)
cv2.waitKey(0)
cv2.destroyAllWindows()

# 返回
return image_copy


if __name__ == "__main__":
# 读取图片
img = cv2.imread("girl2.png")

# 获取泛洪图像
flood_fill = flood_fill(img)

# 保存图片
cv2.imwrite("flood_fill.png", flood_fill)


图像处理06  泛洪---滤波器_保存图片_03

 

 

滤波器

 

图像平滑

图像平滑 (image smoothing) 是一种区域增强算法. 可以帮助我们去除早点改善图片质量.

滤波器 (Filter) 可以帮助我们来降低噪声, 均值滤波器的主要应用是去除图像中的不相关细节.

 

# 读取图片
img = cv2.imread("girl.png")

# 均值滤波器 (3 X 3)
blur = cv2.blur(img, (3, 3))

# 图片展示
cv2.imshow("blur", blur)
cv2.waitKey(0)
cv2.destroyAllWindows()

图像处理06  泛洪---滤波器_泛洪_04

 

 

 

方框滤波
方框滤波器 (Box Filter) 和均值滤波器基本一样.

格式:

cv2.boxFilter(src, ddepth, ksize, dst=None, anchor=None, normalize=None, borderType=None)

参数:

src: 需要滤波的图片
ddepth: 输入图像的深度, -1 代表使用原图深度
Normalize: 标准化, 默认为 None

 

 

高斯滤波器
高斯滤波器 (Gauss Filter) 是一种线性平滑滤波, 适用于高斯噪声.

高斯噪声 (Gaussian Noise) 是概率密度函数服从高斯分布的一类噪声.

格式:

cv2.GaussianBlur(src, ksize, sigmaX, dst=None, sigmaY=None, borderType=None)
参数:

src: 需要滤波的图片
ksize: 卷积核大小
sigmaX: 高斯核函数在 X 方向的的标准偏差
sigmaY: 高斯核函数在 Y 方向的的标准偏差

 

图像处理06  泛洪---滤波器_图片展示_05

 

 

 

中值滤波

中值滤波器 (Median Filter) 用中值填充.

# 读取图片
img = cv2.imread("girl.png")

# 中值滤波器 (3 X 3)
median = cv2.medianBlur(img, 3)

# 图片展示
cv2.imshow("median", median)
cv2.waitKey(0)
cv2.destroyAllWindows()

图像处理06  泛洪---滤波器_图片展示_06