文章目录

  • 遇到的问题
  • 解决方法
  • 参考

遇到的问题

在执行高斯滤波的代码时,遇到下列问题

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解决方法相关推荐

  1. python中引入包的时候报错AttributeError: module ‘sys‘ has no attribute ‘setdefaultencoding‘解决方法?

    python中引入包的时候报错AttributeError: module 'sys' has no attribute 'setdefaultencoding'解决方法? 参考文章: (1)pyth ...

  2. 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错误解决方法: ...

  3. Python使用pip安装报错ModuleNotFoundError: No module named ‘pip._internal.cli.main‘的解决方法

    Python使用pip安装报错ModuleNotFoundError: No module named 'pip._internal.cli.main'的解决方法   大家好,我叫亓官劼(qí guā ...

  4. Python:OSError [WinError 123] 文件名、目录名或卷标语法不正确。解决方法。

    Python:OSError: [WinError 123] 文件名.目录名或卷标语法不正确.解决方法. 我的错误代码: folder = "D:\aatest" files = ...

  5. 运行python脚本时,报错InsecurePlatformWarning: A true SSLContext object is not available,解决方法

    运行python脚本时,报错InsecurePlatformWarning: A true SSLContext object is not available,解决方法 参考文章: (1)运行pyt ...

  6. python numpy库安装winerror5_(转载)Numpy安装中遇到的问题和解决方法

    原文链接​http://blog.csdn.net/wlyfls/article/details/38701209?utm_source=tuicool 系统环境是win7(64bit)+python ...

  7. python画图显示不了中文_Python使用matplotlib绘图无法显示中文问题的解决方法

    本文实例讲述了Python使用matplotlib绘图无法显示中文问题的解决方法.分享给大家供大家参考,具体如下: 在python中,默认情况下是无法显示中文的,如下代码: import matplo ...

  8. python中调用函数no module named 'utilities'_python错误:No module named setuptools 解决方法...

    MySQL-python是Python访问MySQL数据库的第三方模块库: 在安装过程中出现如下错误: [root@localhost MySQL-python-1.2.5]# python setu ...

  9. Python xlrd 读取Excel数字 数字丢失精度 小数位太长 求大神的解决方法(已解决)

    Python xlrd 读取Excel数字 跟Excel显示不一样 小数位太长 求大神的解决方法(已解决) 十分想念顺店杂可... Excel显示的数据 Python代码读取 # -*- coding ...

最新文章

  1. 华为全球最快AI训练集群Atlas 900诞生
  2. 《最受欢迎的女友职业排行榜Top10》
  3. mysql优化问题?_MYSQL优化问题
  4. LINUX下如何重启动网络服务
  5. 算法入门篇 一 时间复杂度
  6. python预测数据怎么写_Python代写时间序列选择波动率预测指数收益算法分析案例...
  7. PHP学习笔记三(数组API)
  8. Omnipeek 抓包工具
  9. 逻辑函数的化简-代数法化简
  10. 360浏览器极速模式对iframe的支持
  11. 电脑录制网课视频怎么操作?
  12. AC自动机 洛谷P3966 单词
  13. 案例详解:理解Python中的“解析式”
  14. linux没有cpufreq目录,【原创】Linux cpufreq framework
  15. 概率笔记2——古典概型
  16. R语言outer函数应用于两个数组实战
  17. Fiddler抓包和Fiddler过滤器
  18. 警告“未引用的形参/局部变量”的消除方法
  19. 《The Witness》:游戏中的建筑学(上)
  20. org.quartz

热门文章

  1. UIScrollView的代理方法(delegate)
  2. DateTimePicker——开源的Android日历类库
  3. 如何使用Keil仿真环境查看CPU类型字长?【worldsing笔记】
  4. 应用化学:顺式丁烯醛与反式丁烯醛的网络
  5. 3.4 滑动窗口的卷积实现-深度学习第四课《卷积神经网络》-Stanford吴恩达教授
  6. 2.6 动量梯度下降法-深度学习第二课《改善深层神经网络》-Stanford吴恩达教授
  7. STM32 电机教程 11 - BLDC 6 步方波开环速度控制
  8. 【体验】TLD5098EL英飞凌恒流电源开发板,恒定电流源LED驱动板
  9. 计算机硬盘登记表,硬盘固件的 P 表与 G 表
  10. 头插法和尾插法分别建立链表(复制即可应用)