python安装了numpy却用不了且报错的解决方案和numpy的简单应用于图像处理

1.报错情况如下:Error importing numpy:

解决方法:降低python和numpy的版本,我一开始下载安装的都是最新版的python和numpy,后来降低了版本后就不报错且可正常使用了,这里给出我使用的版本作为参考(记得卸载之前版本的python和numpy再重新安装),网上有python不同版本适配的python可以自行搜索,建议使用的python版本不要超过3.10。 

2.1.使用python进行对图像进行傅里叶变换并显示原图和频谱图:

import cv2  
import numpy as np
import matplotlib.pyplot as plt
# 读取图像
image_path = 'D:/1212.jpg'  # 这里需要换成自己图片的位置
image = cv2.imread(image_path, cv2.IMREAD_GRAYSCALE)
# 傅里叶变换
dft = np.fft.fft2(image)
dft_shift = np.fft.fftshift(dft)
# 计算频谱
magnitude_spectrum = 20 * np.log(np.abs(dft_shift) + 1)
# 显示原图
plt.figure(figsize=(12, 6))
plt.subplot(121)
plt.imshow(image, cmap='gray')
plt.title('original_image')
plt.axis('off')
# 显示频谱图
plt.subplot(122)
plt.imshow(magnitude_spectrum, cmap='gray')
plt.title('magnitude_image')
plt.axis('off')
plt.show()
exit()

2.2.使用python实现小波变换融合两幅图像: 

import cv2
import pywt  # 需要安装pywt库
import numpy as np
import matplotlib.pyplot as plt

# 读取图像
image1 = cv2.imread('D:/1313.jpg', cv2.IMREAD_GRAYSCALE) # 这里需要换成自己图片的位置 
image2 = cv2.imread('D:/1414.jpg', cv2.IMREAD_GRAYSCALE) # 这里需要换成自己图片的位置
# 二维离散小波变换
c1 = pywt.dwt2(image1, 'haar')
c2 = pywt.dwt2(image2, 'haar')
# 融合小波系数
fused_cA = (c1[0] + c2[0]) / 2
fused_cH = (c1[1][0] + c2[1][0]) / 2
fused_cV = (c1[1][1] + c2[1][1]) / 2
fused_cD = (c1[1][2] + c2[1][2]) / 2
fused_c = (fused_cA.astype(np.float32),
           (fused_cH.astype(np.float32),
            fused_cV.astype(np.float32),
            fused_cD.astype(np.float32)))
# 使用逆变换重建图像,并确保数据类型正确
fused_image = pywt.idwt2(fused_c, 'haar')
fused_image = np.clip(fused_image, 0, 255).astype(np.uint8)
# 显示原图
plt.figure(figsize=(12, 6))
plt.subplot(131)
plt.imshow(image1, cmap='gray')
plt.title('image1')
plt.axis('off')
plt.subplot(132)
plt.imshow(image2, cmap='gray')
plt.title('image2')
plt.axis('off')
# 显示融合后图像
plt.subplot(133)
plt.imshow(fused_image, cmap='gray')
plt.title('fused_image')
plt.axis('off')
plt.show()
exit()

 效果图如下:

2.3.使用python对图片进行3×3和5×5的中值滤波对比效果: 

import cv2
import matplotlib.pyplot as plt

# 读取图像
image_path = 'D:/1515.png' # 这里需要换成自己的图片位置
image = cv2.imread(image_path)
# 将读取到的图像转换为灰度图像
gray_image = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)
# 显示原始灰度图像
plt.figure(figsize=(10, 5))
plt.subplot(1, 3, 1)
plt.imshow(gray_image, cmap='gray')
plt.title('original_image')
plt.axis('off')
# 应用3×3窗口的中值滤波
median_filtered_image_3 = cv2.medianBlur(gray_image, 3)
# 显示3×3中值滤波后的图像
plt.subplot(1, 3, 2)
plt.imshow(median_filtered_image_3, cmap='gray')
plt.title('3×3')
plt.axis('off')
# 应用5×5窗口的中值滤波
median_filtered_image_5 = cv2.medianBlur(gray_image, 5)
# 显示5×5中值滤波后的图像
plt.subplot(1, 3, 3)
plt.imshow(median_filtered_image_5, cmap='gray')
plt.title('5×5')
plt.axis('off')
# 显示所有图像
plt.show()
exit()

效果对比图如下:

 

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/911144.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Java链表及源码解析

文章目录 创建一个ILindkedList接口创建方法(模拟实现链表方法)创建MyLinkedList来实现接口的方法创建链表节点addFirst方法(新增头部属性)addLast方法(新增到末尾一个属性)remove方法(删除指定属性)addInd…

潮玩宇宙方块兽系统开发:可定制UI与多种游戏内嵌助力个性化体验

潮玩宇宙方块兽系统开发正在推动潮玩与游戏的融合,通过个性化的UI设计和多游戏内嵌模式,为用户带来了独一无二的体验。本文将从可定制UI、多游戏内嵌功能以及系统实现等方面入手,探讨如何构建一个极具吸引力的潮玩宇宙方块兽系统。 一、可定制…

C#属性 Property

属性Property不是变量。 它们是由名为访问器方法来实现的一种方法。 实例属性表示的是实例的某个数据,通过这个数据反映实例当前的状态 静态属性表示的是类型的某个数据,通过这个数据反映类型当前的状态 意义: 防止恶意赋值(通过属性间接访问…

第八篇: 通过使用Google BigQuery进行数据批量和自动化处理

使用Python进行Google BigQuery数据批量和自动化处理 在大数据分析的日常工作中,定期更新、查询和处理数据是一项必不可少的任务。Google BigQuery结合Python脚本,可大幅简化这一过程。本文将介绍如何通过Python自动查询和更新BigQuery中的降水量数据&a…

AI - 人工智能;Ollama大模型工具;Java之SpringAI(三)

AI - 人工智能;Java之SpringAI(一) AI - 人工智能;Java之SpringAI(二) 一、Ollama 官网:https://ollama.com/ Ollama是一个大模型部署运行工具,在该工具里面可以部署运行各种大模型…

MySQL_数据类型建表

复习: 我们昨天学习的知识都忘了嘛?如果忘了也不要担心,我来带大家来复习一遍吧!!! 1.查看所有数据库 show databases;2.创建属于自己的数据库 create database 数据库名; 检查自己创建的数据库是…

零基础入门进程间通信:task 1(匿名管道与vscode使用)

目录 引言 VSCODE使用 进程间通信正题 基础背景 进程间通信分类 匿名管道 理解匿名管道 代码实现 匿名管道的特性 管道的四种情况 应用场景 引言 在当今的计算机技术领域,操作系统作为计算机系统的核心组件,承担着资源管理、任务调度和进程管…

Vue 3 的 全局状态管理

1.思路梳理 工厂仓拣货信息:Factory Picking Info (FPI)工厂仓调度信息:Factory Scheduling Info (FSI)DC 收货信息:DC Receiving Info (DCRI)上架信息:Shelving Info (SI)盘点信息:Inventory Count Info (ICI)移位信…

Win系统通过命令行查看笔记本电池损耗/寿命/健康

在 Windows 10/11 系统中,可以通过指令查看笔记本电池的寿命情况,方法如下: 0,打开cmd/终端 键盘快捷键:Win R,然后输入cmd,点击【确定】 1,执行命令 在命令行中输入下面指令并按…

【DM系列】DM 集成 JDBC 开发指南

前言 数据库访问是数据库应用系统中非常重要的组成部分,DM 作为一个通用数据库管理系统,提供了多种数据库访问接口,包括 ODBC、JDBC、DPI 等方式。本开发指南详细介绍了 DM 的各种访问接口、相应开发环境的配置、以及一些开发用例。本指南的主…

【客观理性深入讨论国产中间件及数据库-科创基础软件】

随着国产化的进程,越来越多的国企央企开始要求软件产品匹配过程化的要求, 最近有一家银行保险的科技公司对行为验证码产品就要求匹配国产中间件, 于是开始了解国产中间件都有哪些厂家 一:国产中间件主要产品及厂商 1 东方通&…

python opencv3

三、图像预处理2 1、图像滤波 为图像滤波通过滤波器得到另一个图像。也就是加深图像之间的间隙,增强视觉效果;也可以模糊化间隙,造成图像的噪点被抹平。 2、卷积核 在深度学习中,卷积核越大,看到的信息越多&#xff0…

数据库管理-第258期 23ai:Oracle Data Redaction(20241104)

数据库管理258期 2024-11-04 数据库管理-第258期 23ai:Oracle Data Redaction(20241104)1 简介2 应用场景与有点3 多租户环境4 特性与能力4.1 全数据编校4.2 部分编校4.3 正则表达式编校4.4 随机编校4.5 空值编校4.6 无编校4.7 不同数据类型上…

Kettle——CSV文件转换成excel文件输出

1.点击—文件—新建—转换 拖入两个组件: 按shift+鼠标左击建立连接,并点击主输出步骤, 点击CSV文件输入,选择浏览的csv文件,然后点击确定 同样,Excel也同上,只是要删除这个xls 并…

【数据集】【YOLO】【目标检测】火情、烟雾、火灾检测数据集 9848 张,YOLO火灾检测算法实战训练教程!

数据集介绍 【数据集】火情、烟火、火灾检测数据集 9848 张,目标检测,包含YOLO/VOC格式标注。 数据集中包含2种分类:{0: Fire, 1: Smoke},分别是‘火焰’和‘烟雾’。 数据集来自国内外图片网站和视频截图; 可用于…

Python酷库之旅-第三方库Pandas(202)

目录 一、用法精讲 941、pandas.CategoricalIndex.set_categories方法 941-1、语法 941-2、参数 941-3、功能 941-4、返回值 941-5、说明 941-6、用法 941-6-1、数据准备 941-6-2、代码示例 941-6-3、结果输出 942、pandas.CategoricalIndex.as_ordered方法 942-1…

docker 拉取MySQL8.0镜像以及安装

目录 一、docker安装MySQL镜像 搜索images 拉取MySQL镜像 二、数据挂载 在/root/mysql/conf中创建 *.cnf 文件 创建容器,将数据,日志,配置文件映射到本机 检查MySQL是否启动成功: 三、DBeaver数据库连接 问题一、Public Key Retrieval is not allowed 问题…

Java多线程详解⑤(全程干货!!!)线程安全问题 || 锁 || synchronized

这里是Themberfue 在上一节的最后,我们讨论两个线程同时对一个变量累加所产生的现象 在这一节中,我们将更加详细地解释这个现象背后发生的原因以及该如何解决这样类似的现象 线程安全问题 public class Demo15 {private static int count 0;public …

如何使用RabbitMQ和Python实现广播消息

使用 RabbitMQ 和 Python 实现广播消息的过程涉及设置一个消息队列和多个消费者,以便接收相同的消息。RabbitMQ 的 “fanout” 交换机允许你将消息广播到所有绑定的队列。以下是如何实现这一过程的详细步骤。 1、问题背景 在将系统从Morbid迁移到RabbitMQ时&#x…

【RabbitMQ】04-发送者可靠性

1. 生产者重试机制 spring:rabbitmq:connection-timeout: 1s # 设置MQ的连接超时时间template:retry:enabled: true # 开启超时重试机制initial-interval: 1000ms # 失败后的初始等待时间multiplier: 1 # 失败后下次的等待时长倍数,下次等待时长 initial-interval…