图像处理:设计动态高斯滤波
创作时间:
作者:
@小白创作中心
图像处理:设计动态高斯滤波
引用
CSDN
1.
https://blog.csdn.net/JNingWei/article/details/79137301
Idea
OpenCV中有一个实现高斯滤波的接口,如下:
cv2.GaussianBlur(src, ksize, sigmaX, dst=None, sigmaY=None, borderType=None)
在项目过程中,发现如果根据像素点相对整张图片的位置设计不同的滤波核大小(即参数ksize),就可以灵活地对整张图片实现动态高斯滤波。具体滤波核大小计算公式如下:
size = int(k1*x + k2*y + b) * 2 + 1
Note :注意保证输出结果为整型奇数,因为参数ksize只接受整型奇数输入。
由于图片大小是600×424×3,所以k1,k2,b的取值如下:
Demo
原图像:
水平动态高斯滤波:
垂直动态高斯滤波:
Code
以下代码中,关于“对角动态高斯滤波(diagonal gaussian)”的代码段有问题,所以被注释掉了。因为不能对单元素单独进行高斯滤波,所以会报错。具体该怎么解决,我也一时没想到。
# coding=utf-8
import numpy as np
import cv2
def kernel_size(x, y, type):
if type == "vertical":
k1, k2, b = 0, 0.012, 0
elif type == "horizontal":
k1, k2, b = 0.009, 0, 0
elif type == "diagonal":
k1, k2, b = 0.0053, 0.0053, 0
else:
k1, k2, b = 0, 0, 11
size = int(k1*x + k2*y + b) * 2 + 1
return size
def range_limit(img):
img *= (img>0)
img = img * (img<=255) + 255 * (img>255)
img = img.astype(np.uint8)
return img
def dynamic_gaussian(img):
h, w, c = np.shape(img)
sigma = 2
# gs_v: vertical gaussian, 垂直高斯
# gs_h: horizontal gaussian, 水平高斯
# gs_d: diagonal gaussian, 对角高斯
gs_v, gs_h, gs_d = img.copy(), img.copy(), img.copy()
for i in range(h):
k_size = kernel_size(w, i, "vertical")
gs_v[i, :, :] = cv2.GaussianBlur(gs_v[i, :, :], (k_size, k_size), sigma)
print(i, k_size)
for j in range(w):
k_size = kernel_size(j, h, "horizontal")
gs_h[:, j, :] = cv2.GaussianBlur(gs_h[:, j, :], (k_size, k_size), sigma)
print(j, k_size)
# # 报错:
# for i in range(h):
# for j in range(w):
# k_size = kernel_size(i, j, "diagonal")
# gs_d[i, j, :] = cv2.GaussianBlur(gs_d[i, j, :], (k_size, k_size), sigma)
# print(i, j, k_size)
return gs_v, gs_h, gs_d
def main():
img_path = "./girl.jpg"
img = cv2.imread(img_path)
gs_v, gs_h, gs_d = dynamic_gaussian(img)
cv2.imwrite("./gs_v.jpg", gs_v)
cv2.imwrite("./gs_h.jpg", gs_h)
cv2.imwrite("./gs_d.jpg", gs_d)
if __name__ == "__main__":
main()
本文原文来自CSDN
热门推荐
Telegram的搜索功能使用小技巧
零基础组装电脑全流程!手把手教你从废铁到顶配的20个避坑细节指南
二语习得理论:如何有效学习英语
浅谈中国古代教育的发展,以及私学的兴起
水晶市场的火爆,年轻人带来的玄学商机
黑巧克力脂肪碳水含量这么高,为啥减肥推荐吃?
代写毕业论文的法律后果有哪些?
中国历史十大国宝排名,兰亭序仅仅能排第十!
水池防水专家:水泥基渗透结晶涂料,长效守护
拿破仑兵败滑铁卢另有原因?2018年英国科学家给出了新的解释
【运动科学】甜菜根真的能增强运动表现和帮助肌肉恢复吗?小編带你揭开真相!
这80个认知偏差,你了解多少
孩子腺样体肥大一定要切吗?切除后免疫力会不会下降?
科学幻想:如果你驾驶你的曲速飞船进入黑洞会怎么样?
芥末到底是什么制作的、为什么叫“芥末”?吃了20多年总算明白了
七种“臭”味食物,吃过2种以上的是正宗吃货,你敢挑战吗?
中国影史第一,魔童哪吒不止颠覆神话
欧美货币政策分化的原因与潜在影响
期货的Delta值怎样衡量?该衡量方式存在哪些局限性?
期权系数-Delta系数(Δ)的相关内容
当标准电动汽车售价低于老年代步车的时候,矛盾为何依然无解?
【辨识误区·眼健康指南】霰粒肿与麦粒肿:眼睑上的双“肿”谜团
4060Ti显卡电源选购指南:功率需求与最佳配置解析
为何减肥、减重如此艰难?
JS蓝牙耳机调成中文模式的三种方法
巴巴罗萨计划:纳粹德国入侵苏联的绝密行动
脖子、腋窝长这2个东西,提示你可能得了糖尿病,赶紧对照看
学生党在宿舍如何有效健身
如何使用咖啡渣来促进植物生长
研究论文抽检查什么