图像处理技术与应用(一)

图像处理技术与应用入门

使用skimage进行图像读取和显示

skimage库(Scikit-image)提供了一个强大的工具集,用于执行各种图像处理任务。以下是如何使用skimage读取和显示图像的基本示例:

from skimage import ioimg = io.imread("dd.jpg", as_gray=True)io.imshow(img)io.show()

读取一个名为dd.jpg的图像文件,并以灰度模式显示它。

原图

 灰度图像

使用skimage读取内置测试图像

skimage库提供了一些内置的测试图像,可以直接使用:

from skimage import dataimg = data.hubble_deep_field()io.imshow(img)

显示了Hubble深空图像。

读取图像并保存

from skimage import data_dir,data,io# img1 = data.hubble_deep_field()img2 = io.imread('C:/Users/14919/OneDrive/Pictures/Screenshot_20230802_150439.jpg')# # print(img2)io.imshow(img2)io.show()io.imsave('C:/Users/14919/OneDrive/Desktop/图像处理-工坊/11.jpg',img)

使用PILskimage复制图像到新文件夹

Python Imaging Library(PIL)的Image模块可以与skimage结合使用,以复制图像到新文件夹:

from PIL import Imageimport osfrom skimage import io# 图片存储的文件夹路径folder_path = 'C:/Users/14919/OneDrive/Desktop/图像处理-工坊'# 用来保存图片的文件夹路径output_folder_path = 'C:/Users/14919/OneDrive/Desktop/图像处理-工坊/aa'# 确保输出文件夹存在if not os.path.exists(output_folder_path):os.makedirs(output_folder_path)# 遍历文件夹中的所有图片for filename in os.listdir(folder_path):if filename.endswith(('.png', '.jpg', '.jpeg', '.bmp', '.gif')):# 打开图片img = Image.open(os.path.join(folder_path, filename))# 保存图片到输出文件夹,同时保留原有文件名img.save(os.path.join(output_folder_path, filename))

这段代码将遍历指定文件夹中的所有图片,并将它们保存到另一个文件夹中。

使用matplotlibskimage分析图像属性

matplotlib库可以与skimage一起使用,以分析图像的属性:

import matplotlib.pyplot as pltfrom skimage import ioimg = io.imread("cc.jpg")io.imshow(img)plt.axis('off')print('图片的类型是:',type(img))# 显示类型print('图片的尺寸是:',img.shape)# 显示尺寸print('图片的宽度是:',img.shape[0])# 图片宽度print('图片的高度是:',img.shape[1])# 图片高度print('图片的通道数是:',img.shape[2])# 图片通道数print('图像总像素个数是:',img.size) # 显示总像素个数print('图象的最大像素值是:',img.max())# 最大像素值print('图像最小像素值是:',img.min())# 最小像素值print('图像像素平均值是:',img.mean())# 像素平均值

显示了图像,还输出了关于图像的重要统计信息,如尺寸、像素值等

分段写出代码效果会更好

使用cv2进行图像处理

cv2是OpenCV库的Python接口,它提供了广泛的图像处理和计算机视觉功能。以下是如何使用cv2调整图像大小和显示不同颜色通道的示例:

import cv2img = cv2.imread('aa.jpg')#调整图像大小为300x300img = cv2.resize(img, (300, 300))cv2.imshow("img show", img)# 读取蓝色通道,最后一个值为0b = img[:, :, 0]# 读取绿色通道,最后一个值为 1g = img[:, :, 1]# 读取红色通道,最后一个值为 2r = img[:, :, 2]# 分别显示cv2.imshow("b", b)cv2.imshow("g", g)cv2.imshow("r", r)cv2.waitKey()cv2.destroyAllWindows()

读取图像、调整其大小,并分别显示其红色、绿色和蓝色通道。

r为红色通道,下标值为2

g为绿色通道,下标值为1

b为蓝色通道,下标值为0

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Unpaired Image Super-Resolution using Pseudo-Supervision

CVPR2020解决的问题是当前的SR模型基于成对的数据,且其中LR的图片是通过HR经过bicubic下采样得到的,而实际图片的degradation过程更为复杂,且本文提出的方法不需要成对的HR-LR数据;提出的模型包含两个部分: – correct…

中北大学软件学院操作系统实验二进程调度算法

实验时间 2024年 4 月13日14时至16时 学时数 2 1.实验名称 实验二进程调度算法 2.实验目的 (1)加深对进程的概念及进程调度算法的理解; (2)在了解和掌握进程调度算法的基础上,编制进程调度算法通用程序,将调试结果显示在计算机屏幕上&am…

什么是大语言模型以及如何构建自己的大型语言模型?

一、关于大语言模型 LLM 对于无数的应用程序非常有用,如果我们自己从头开始构建一个,那我们可以了解底层的ML技术,并可以根据特定需求定制LLM,但是对资源的需求巨大。大型语言模型是一种 ML 模型,可以执行各种自然语言…

LeetCode 315—— 计算右侧小于当前元素的个数

阅读目录 1. 题目2. 解题思路一3. 代码实现一4. 解题思路二5. 代码实现二 1. 题目 2. 解题思路一 参考 剑指 Offer——数组中的逆序对,我们依然借助于归并排序中的合并操作来计算某个元素右侧小于它的元素个数。 如上图最左边所示,第五行开始进行第一次…

国内首个48小时大模型极限挑战赛落幕,四位“天才程序员”共同夺冠

4月21日晚,第四届ATEC科技精英赛(ATEC2023)线下赛落幕。本届赛事以大模型为技术基座,围绕“科技助老”命题,是国内首个基于真实场景的大模型全链路应用竞赛。ATEC2023线下赛采用48小时极限挑战的形式,来自东…

2024年最新版云开发cms开通步骤,开始开发微信小程序前的准备工作,认真看完奥!

小程序官方有改版了,搞得石头哥不得不紧急的再新出一版,教大家开通最新版的cms网页管理后台 一,技术选型和技术点 1,小程序前端 wxml css JavaScript MINA原生小程序框架 2,数据库 云开发 云数据库 云…

springboot 批量下载文件, zip压缩下载

一、使用hutool 工具类 效果&#xff1a;下载速度可以 1、依赖&#xff1a;hutool <dependency><groupId>cn.hutool</groupId><artifactId>hutool-all</artifactId><version>5.8.26</version> </dependency>2、调用方式 im…

Android Studio开发工具学习之Git分支操作

这里写目录标题 2.1 查看、创建本地分支2.1.1 命令行查看与创建2.1.2 Git窗口查看与创建 2.2 切换分支&#xff1a;Checkout2.3.1 通过命令行切换 2.3.2 通过Git窗口切换 2.3 合并分支&#xff1a;Merge2.3.1 操作command_new、gui-new分支2.3.1 通过命令行将gui-new分支合并至…

LT8711UXD助力新款Swtich游戏机底座《4K/60HZ投屏方案》

Nintendo Switch&#xff08;OLED版&#xff09;正面搭载了一块分辨率为720P的7.0英寸OLED屏幕&#xff1b;具有白色和电光蓝电光红2种颜色&#xff1b;机身长度102毫米&#xff0c;宽度242毫米&#xff0c;厚度13.9毫米&#xff0c;重量约420克。 [2]Nintendo Switch&#xff…

举个栗子!Tableau 技巧(271):同时筛选不同年份的 TopN 数据

零售企业的销售数据分析中&#xff0c;经常用排序来查看过去一年或者几年的数据 TopN 情况。如果可以在同一视图中&#xff0c;呈现很多年的数据排名&#xff0c;且通过筛选能灵活调整 TopN 的 N 值&#xff0c;岂不是更方便&#xff1f; 如下示例&#xff1a;图表呈现了各品牌…

centos7上搭建mongodb数据库

1.添加MongoDB的YUM仓库&#xff1a; 打开终端&#xff0c;执行以下命令来添加MongoDB的YUM仓库&#xff1a; sudo vi /etc/yum.repos.d/mongodb-org-4.4.repo 在打开的文件中&#xff0c;输入以下内容&#xff1a; [mongodb-org-4.4] nameMongoDB Repository baseurlh…

【sping】在logback-spring.xml 获取项目名称

在日志文件中我们想根据spring.application.name 创建出的文件夹。 也不想死在XML文件中。 application.yml spring:application:name: my-demo logback-spring.xml <springProperty name"application_name" scope"context" source"spring.app…

如何用微信小程序实现远程控制无人售货柜

如何用微信小程序实现远程控制无人售货柜呢&#xff1f; 本文描述了使用微信小程序调用HTTP接口&#xff0c;实现控制无人售货柜&#xff0c;独立控制售货柜、格子柜的柜门。 可选用产品&#xff1a;可根据实际场景需求&#xff0c;选择对应的规格 序号设备名称厂商1智能WiFi…

自动驾驶光学校准反射板

光学校准反射板是一种用于光学系统校准的重要工具。它以其高反射率和精确的几何特性&#xff0c;为光学仪器、光学系统和光学元件的校准提供了可靠的参考。在现代光学领域&#xff0c;光学校准反射板的应用已经深入到各个领域&#xff0c;从科学研究到工业生产&#xff0c;都离…

# IDEA2019 如何打开 Run Dashboard 运行仪表面板

IDEA2019 如何打开 Run Dashboard 运行仪表面板 段子手168 1、依次点击 IDEA 上面工具栏 —> 【View】 视图。 —> 【Tool Windows】 工具。 —> 【Run Dashboard】 运行仪表面板。 2、如果 【Tool Windows 】工具包 没有 【Run Dashboard】 运行仪表面板 项 依次…

慈航医疗“五进”实践活动第九场:范庄村爱心义诊,村民健康有“医”靠

为落实推进“健康中国”战略&#xff0c;提升居民健康意识和预防疾病能力&#xff0c;4月18日&#xff0c;慈航医疗健康前往范庄村开展健康义诊活动&#xff0c;为100余位村民送上了一份暖心的公益关爱。 义诊当天&#xff0c;在志愿服务队队员的引领下&#xff0c;慈航医疗健康…

数据结构|树形结构|并查集

数据结构|并查集 并查集 心有猛虎&#xff0c;细嗅蔷薇。你好朋友&#xff0c;这里是锅巴的C\C学习笔记&#xff0c;常言道&#xff0c;不积跬步无以至千里&#xff0c;希望有朝一日我们积累的滴水可以击穿顽石。 有趣的并查集剧情演绎&#xff1a;【算法与数据结构】—— 并…

JavaScript —— APIs(三)

一、事件流 &#xff08;一&#xff09;定义 &#xff08;二&#xff09;事件捕获 事件捕获&#xff0c;对话框从大到小弹出&#xff0c;先弹出爷爷&#xff0c;最后弹出儿子 &#xff08;三&#xff09;事件冒泡 冒泡事件&#xff0c;对话框从小到大弹出&#xff0c;先弹出…

详解QString与QByteArray使用对比

QString与QByteArray是Qt库中两种不同的字符串/字节序列容器&#xff0c;各自服务于特定的应用场景。本篇文章将详细解析它们的异同&#xff0c;帮助您在实际编程中准确选择和有效地使用这两种类型。 参考 QString类的使用 相同之处 构造与初始化&#xff1a; 两者都支持直接使…

Apache Answer 开源问答社区安装体验

Answer 是由 SegmentFault 思否团队打造的一款问答平台软件,后端使用 Go 语言编写,于2022年10月24日(程序员节)正式开源。你可以免费使用 Answer 高效地搭建一个问答社区,并用于产品技术问答、客户支持、用户交流等场景。 2023年10月9日,Answer 顺利通过投票,以全票通过…