资源简介
使用C++与Python实现的引导滤波(guided image filter)代码,附件中包含一个cpp文件、一个python文件与一张测试图像。
博客链接为:https://blog.csdn.net/u013921430/article/details/99695647

代码片段和文件信息
# -*- coding: utf-8 -*-
“““
Created on Sat Aug 17 18:46:20 2019
@author: 不用先生
“““
import cv2
import numpy as np
input_fn=‘03.jpg‘
def my_guidedFilter_oneChannel(srcImgguidedImgrad=9eps=0.01):
srcImg=srcImg/255.0
guidedImg=guidedImg/255.0
img_shape=np.shape(srcImg)
# dstImg=np.zeros(img_shapedtype=float)
#
# P_mean=np.zeros(img_shapedtype=float)
# I_mean=np.zeros(img_shapedtype=float)
# I_square_mean=np.zeros(img_shapedtype=float)
# I_mul_P_mean=np.zeros(img_shapedtype=float)
# var_I=np.zeros(img_shapedtype=float)
# cov_I_P=np.zeros(img_shapedtype=float)
#
# a=np.zeros(img_shapedtype=float)
# b=np.zeros(img_shapedtype=float)
# a_mean=np.zeros(img_shapedtype=float)
# b_mean=np.zeros(img_shapedtype=float)
P_mean=cv2.boxFilter(srcImg -1 (rad rad) normalize=True)
I_mean=cv2.boxFilter(guidedImg-1 (rad rad) normalize=True)
I_square_mean=cv2.boxFilter(np.multiply(guidedImgguidedImg) -1 (rad rad) normalize=True)
I_mul_P_mean=cv2.boxFilter(np.multiply(srcImgguidedImg) -1 (rad rad) normalize=True)
var_I=cv2.boxFilter(I_square_mean-np.multiply(I_meanI_mean) -1 (rad rad) normalize=True)
cov_I_P=cv2.boxFilter(I_mul_P_mean-np.multiply(I_meanP_mean) -1 (rad rad) normalize=True)
a=cov_I_P/(var_I+eps)
b=P_mean-np.multiply(aI_mean)
a_mean=cv2.boxFilter(a -1 (rad rad) normalize=True)
b_mean=cv2.boxFilter(b -1 (rad rad) normalize=True)
dstImg=np.multiply(a_meanguidedImg)+b_mean
return dstImg*255.0
def my_guidedFilter_threeChannel(srcImgguidedImgrad=9eps=0.01):
img_shape=np.shape(srcImg)
dstImg=np.zeros(img_shapedtype=float)
for ind in range(0img_shape[2]):
dstImg[::ind]=my_guidedFilter_oneChannel(srcImg[::ind]
guidedImg[::ind]radeps)
dstImg=dstImg.astype(np.uint8)
return dstImg
def main():
img=cv2.imread(input_fn)
print(np.shape(img))
dstimg=my_guidedFilter_threeChannel(imgimg90.01)
print(np.shape(dstimg))
# cv2.imwrite(‘output.jpg‘dstimg)
cv2.imshow(‘output‘dstimg)
cv2.waitKey(0)
if __name__ == ‘__main__‘:
main()
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 81718 2018-11-25 20:33 引导滤波_Cpp_Python\03.jpg
文件 2342 2019-08-17 22:47 引导滤波_Cpp_Python\guided filter.py
文件 5024 2019-08-18 10:02 引导滤波_Cpp_Python\guidedFilter.cpp
目录 0 2019-08-18 10:03 引导滤波_Cpp_Python
----------- --------- ---------- ----- ----
89084 4
- 上一篇:自适应图像增强完整OpenCV代码
- 下一篇:QT录屏源码 ,无BUG
相关资源
- 人脸识别(opencv_facedetect_v4l2)
- 基于opencv的模板匹配代码
- opencv图片扫描以及校正
- opencv手部轮廓识别以及轨迹识别
- opencv2 3D标定.cpp
- 基于opencv漫水填充算法综合
- opencv激光中心线的提取
- OpenCV Computer Vision Application Programming
- 基于图割的图像分割OpenCV+MFC实现
- 识别魔方颜色
- opencv版俄罗斯方块源码
- VS2013 / MFC + OpenCV 2.4.9实现视频的播放
- 粒子滤波器+目标跟踪的C++实现,VS2
- 张平OpenCV算法精讲基于python和C++教材
- 虹膜识别开源代码OSIRIS4.1基于opencv
- Sift特征点提取与匹配opencv库
- YCbCr、混合高斯以及YCbCg肤色检测模型
- 光流法代码
- OpenCV打开摄像机显示在MFC窗口工程源
- 使用c++读取图像到二维矩阵
- 三维点云的圆柱面拟合
- MFC+OPENCV摄像机标定程序
- 基于特征脸的人脸识别MFC+OpenCV
- opencv图像处理MFC
- OPENCV人脸检测加角点检测并输出坐标
- FillHole.rar
- 道路提取算法 c++ opencv
- PCA代码实现详解
- opencv卡尔曼滤波
- SeamCarving opencv c++
评论
共有 条评论