python彩色图像如何进行高斯滤波ValueError: correlate2d inputs must both be 2-D arrays解决方法
文章目录
- 遇到的问题
- 解决方法
- 参考
遇到的问题
在执行高斯滤波的代码时,遇到下列问题
ValueError: correlate2d inputs must both be 2-D arrays
进行试验的代码
import numpy as np
from scipy import signal
from skimage import data
from matplotlib import pyplot as plt
from skimage.io import imread
import mathdef correl2d(img, window):"""二维灰度图像的空间滤波函数"""# 使用滤波器实现图像的空间相关 # mode = 'same'表示输出尺寸等于输入尺寸 # boundary = 'fill' 表示滤波前,用常量值填充原始图像的边缘,默认常量值为0s = signal.correlate2d(img, window, mode='same', boundary='fill')return s.astype(np.uint8)def gauss(i, j, sigma):"""定义二维高斯函数"""return 1 / (2 * math.pi * sigma ** 2) * math.exp(-(i ** 2 + j ** 2) / (2 * sigma ** 2))def gauss_window(radius, sigma):"""定义radius * radius 的高斯平滑模板"""window = np.zeros((radius * 2 + 1, radius * 2 + 1))for i in range(-radius, radius + 1):for j in range(-radius, radius + 1):window[i + radius][j + radius] = gauss(i, j, sigma)return window / np.sum(window)# img为原始图像
img = imread("4.1.04.tiff")
# 3*3 高斯平滑滤波模板
window_1 = gauss_window(3, 1.0)# 生成滤波结果
new_img_1 = correl2d(img, window_1)# 显示图像
plt.rcParams['font.sans-serif'] = ['SimHei'] # 中文
fig, axs = plt.subplots(1, 2)
axs[0].imshow(img, cmap='gray')
axs[0].set_title("摄影师原图")
axs[1].imshow(new_img_1, cmap='gray')
axs[1].set_title("3*3 高斯平滑滤波模板")plt.tight_layout()
plt.show()
解决方法
多个通道分别进行滤波
window = gauss_window(3, 1.0)
for i in range(3):new_img[:,:,i]= correl2d(img[:, :, i],window)
代码测试成功
完整测试代码
import numpy as np
from scipy import signal
from skimage import data
from matplotlib import pyplot as plt
from skimage.io import imread
import mathdef correl2d(img, window):"""二维灰度图像的空间滤波函数"""# 使用滤波器实现图像的空间相关 # mode = 'same'表示输出尺寸等于输入尺寸 # boundary = 'fill' 表示滤波前,用常量值填充原始图像的边缘,默认常量值为0s = signal.correlate2d(img, window, mode='same', boundary='fill')return s.astype(np.uint8)def gauss(i, j, sigma):"""定义二维高斯函数"""return 1 / (2 * math.pi * sigma ** 2) * math.exp(-(i ** 2 + j ** 2) / (2 * sigma ** 2))def gauss_window(radius, sigma):"""定义radius * radius 的高斯平滑模板"""window = np.zeros((radius * 2 + 1, radius * 2 + 1))for i in range(-radius, radius + 1):for j in range(-radius, radius + 1):window[i + radius][j + radius] = gauss(i, j, sigma)return window / np.sum(window)# img为原始图像
img = imread("4.1.04.tiff")
new_img =np.zeros(img.shape)
# 3*3 高斯平滑滤波模板window = gauss_window(3, 1.0)
for i in range(3):new_img[:,:,i]= correl2d(img[:, :, i],window) # 显示图像
plt.rcParams['font.sans-serif'] = ['SimHei'] # 中文
fig, axs = plt.subplots(1, 2)
axs[0].imshow(img, cmap='gray')
axs[0].set_title("摄影师原图")
axs[1].imshow(new_img.astype('uint8'))
axs[1].set_title("3*3 高斯平滑滤波模板")plt.tight_layout()
plt.show()
参考
[1]https://stackoverflow.com/questions/51562341/valueerror-convolve2d-inputs-must-be-both-2d-arrays
python彩色图像如何进行高斯滤波ValueError: correlate2d inputs must both be 2-D arrays解决方法相关推荐
- python中引入包的时候报错AttributeError: module ‘sys‘ has no attribute ‘setdefaultencoding‘解决方法?
python中引入包的时候报错AttributeError: module 'sys' has no attribute 'setdefaultencoding'解决方法? 参考文章: (1)pyth ...
- Python中 'unicodeescape' codec can't decode bytes in position 2-3: truncated \UXXXXXXXX escape错误解决方法
Python中 'unicodeescape' codec can't decode bytes in position 2-3: truncated \UXXXXXXXX escape错误解决方法: ...
- Python使用pip安装报错ModuleNotFoundError: No module named ‘pip._internal.cli.main‘的解决方法
Python使用pip安装报错ModuleNotFoundError: No module named 'pip._internal.cli.main'的解决方法 大家好,我叫亓官劼(qí guā ...
- Python:OSError [WinError 123] 文件名、目录名或卷标语法不正确。解决方法。
Python:OSError: [WinError 123] 文件名.目录名或卷标语法不正确.解决方法. 我的错误代码: folder = "D:\aatest" files = ...
- 运行python脚本时,报错InsecurePlatformWarning: A true SSLContext object is not available,解决方法
运行python脚本时,报错InsecurePlatformWarning: A true SSLContext object is not available,解决方法 参考文章: (1)运行pyt ...
- python numpy库安装winerror5_(转载)Numpy安装中遇到的问题和解决方法
原文链接http://blog.csdn.net/wlyfls/article/details/38701209?utm_source=tuicool 系统环境是win7(64bit)+python ...
- python画图显示不了中文_Python使用matplotlib绘图无法显示中文问题的解决方法
本文实例讲述了Python使用matplotlib绘图无法显示中文问题的解决方法.分享给大家供大家参考,具体如下: 在python中,默认情况下是无法显示中文的,如下代码: import matplo ...
- python中调用函数no module named 'utilities'_python错误:No module named setuptools 解决方法...
MySQL-python是Python访问MySQL数据库的第三方模块库: 在安装过程中出现如下错误: [root@localhost MySQL-python-1.2.5]# python setu ...
- Python xlrd 读取Excel数字 数字丢失精度 小数位太长 求大神的解决方法(已解决)
Python xlrd 读取Excel数字 跟Excel显示不一样 小数位太长 求大神的解决方法(已解决) 十分想念顺店杂可... Excel显示的数据 Python代码读取 # -*- coding ...
最新文章
- 华为全球最快AI训练集群Atlas 900诞生
- 《最受欢迎的女友职业排行榜Top10》
- mysql优化问题?_MYSQL优化问题
- LINUX下如何重启动网络服务
- 算法入门篇 一 时间复杂度
- python预测数据怎么写_Python代写时间序列选择波动率预测指数收益算法分析案例...
- PHP学习笔记三(数组API)
- Omnipeek 抓包工具
- 逻辑函数的化简-代数法化简
- 360浏览器极速模式对iframe的支持
- 电脑录制网课视频怎么操作?
- AC自动机 洛谷P3966 单词
- 案例详解:理解Python中的“解析式”
- linux没有cpufreq目录,【原创】Linux cpufreq framework
- 概率笔记2——古典概型
- R语言outer函数应用于两个数组实战
- Fiddler抓包和Fiddler过滤器
- 警告“未引用的形参/局部变量”的消除方法
- 《The Witness》:游戏中的建筑学(上)
- org.quartz
热门文章
- UIScrollView的代理方法(delegate)
- DateTimePicker——开源的Android日历类库
- 如何使用Keil仿真环境查看CPU类型字长?【worldsing笔记】
- 应用化学:顺式丁烯醛与反式丁烯醛的网络
- 3.4 滑动窗口的卷积实现-深度学习第四课《卷积神经网络》-Stanford吴恩达教授
- 2.6 动量梯度下降法-深度学习第二课《改善深层神经网络》-Stanford吴恩达教授
- STM32 电机教程 11 - BLDC 6 步方波开环速度控制
- 【体验】TLD5098EL英飞凌恒流电源开发板,恒定电流源LED驱动板
- 计算机硬盘登记表,硬盘固件的 P 表与 G 表
- 头插法和尾插法分别建立链表(复制即可应用)