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

图像处理技术与应用入门

使用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://xiahunao.cn/news/2979565.html

如若内容造成侵权/违法违规/事实不符,请联系瞎胡闹网进行投诉反馈,一经查实,立即删除!

相关文章

LLama的激活函数SwiGLU 解释

目录 Swish激活函数 1. Swish函数公式 LLaMA模型中的激活函数 1. SwiGLU激活函数 2. SwiGLU激活函数的表达式 3. SwiGLU激活函数的优势 Swish激活函数 Swish是一种激活函数,其计算公式如下: 1. Swish函数公式 Swish(x) x * sigmoid(x) 其中&am…

【CMake】CMake从入门到实战系列(十)——CMake中的条件语句和循环语句

文章目录 前言一、条件语句1、if 语句【1】基本语法【2】参数含义【3】示例 二、循环语句1、foreach 循环foreach 循环之 基本用法【1】基本语法【2】参数含义【3】示例 foreach 循环之 RANGE 关键字【1】基本语法【2】参数含义【3】示例 foreach 循环之 IN 关键字【1】基本语法…

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

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

Quartz - 任务调度

文章目录 关于 QuartzQuartz的体系结构核心概念设计模式 常用API基本使用 关于 Quartz 官网:https://www.quartz-scheduler.orggithub : https://github.com/quartz-scheduler/quartz文档:https://www.quartz-scheduler.org/documentation/ 相关教程/博…

autodesk系列软件打开提示Flexnet License Finder

错误如图 解决方法如下 打开autoremove,点击扩展功能,输入flex,点击搜索 选择对应的这个按钮,点击,提示修复成功即可尝试打开软件

深入学习Linux中的“文件系统与日志分析”

目录 1.文件系统的组成 1.1inode和block 1.2inode的内容 1.3inode的号码 ​1.4文件存储小结 ​1.5inode大小 1.6inode的特殊作用 2. 链接文件 3.文件恢复 3.1EXT类型文件恢复 3.2磁盘有空间,但是仍然无法写入新文件 3.3恢复XFS类型的文件 3.3.1xfsdump…

Unity 中(提示框Tweet)

using UnityEngine; using UnityEngine.UI; using DG.Tweening; using System; public class Message : MonoBehaviour {public float dropDuration 0.5f; // 掉落持续时间public float persisterDuration 1f; // 持续显示时间public float dorpHeight;public static Message…

vue【vuex状态管理】

1:vuex是什么: vuex是一个状态管理工具,状态就是指的数据,可以将数据存放到vuex中以供其他组件使用时进行调用 2:应用场景: ①:像用户登录客户端,这个用户的数据需要在多个组件中…

一维递归:递去

示例&#xff1a; /*** brief how about recursive-forward-1? show you here.* author wenxuanpei* email 15873152445163.com(query for any question here)*/ #define _CRT_SECURE_NO_WARNINGS//support c-library in Microsoft-Visual-Studio #include <stdio.h>…

Linux多进程(一)创建进程与进程控制

一、进程状态 进程一共有五种状态分别为&#xff1a;创建态&#xff0c;就绪态&#xff0c;运行态&#xff0c;阻塞态(挂起态)&#xff0c;退出态(终止态)其中创建态和退出态维持的时间是非常短的&#xff0c;稍纵即逝。主要是就绪态, 运行态, 挂起态三者之间的状态切换。 就绪…

ABB机器人IRB4400平衡缸维修小技巧

ABB平衡缸是机器人是一个不可忽视的重要组成部分。ABB机器人平衡缸通常采用高强度材料制造&#xff0c;设计精巧&#xff0c;方便地集成到IRB4400机器人手臂中。此外&#xff0c;平衡缸还具备良好的密封性能&#xff0c;防止气体或液体泄漏&#xff0c;确保其耐用性和稳定性。因…

Mac电脑清理微信聊天记录 Mac电脑微信缓存怎么删

细心网友突然发现微信已经成为占用电脑存储空间最大的软件&#xff0c;其中包括聊天记录、缓存的文件、图片、视频等等&#xff0c;少则几个G&#xff0c;多则十几个G&#xff0c;让原本就不富裕的Mac存储空间更是雪上加霜。mac电脑清理微信聊天记录成为大家迫切解决的问题&…

MySQL文件目录结构:表在文件系统中的表示

以下内容基于Linux系统&#xff0c;MySQL的 /var/lib/mysql/ 目录下的数据文件 &#x1f496; Innodb 引擎 MySQL 5.7 MySQL 8.0 &#x1f31f; 总结 Innodb 是聚簇索引&#xff0c;索引及数据&#xff0c;数据即索引&#xff0c;所以数据和索引是存储在同一个文件中的 MyS…

Java基本语法(基础部分)

Java基本语法 文章目录 Java基本语法前言一、准备工作1.1 计算机软件与硬件1.2 计算机编程语言1.3 Java语言概述&程序分析1.4 Java环境搭建&Java API1.5 Java核心机制JVM 二、变量2.1 关键字&标识符2.2 变量2.3 数据类型(基本数据类型)2.3.1 基本数据类型2.3.2 基本…

【八股文】Spring 谈谈你对AOP的理解

AOP AOP(Aspect-Oriented Programming&#xff0c;面向切面编程)&#xff1a;是一种新的方法论&#xff0c;是对传统 OOP(Object-Oriented Programming&#xff0c;面向对象编程)的补充。 面向对象是纵向继承&#xff0c;面向切面是横向抽取。 OOP思想是一种垂直纵向的继承体…

HARDVS: Revisiting Human Activity Recognition with Dynamic Vision Sensors

标题&#xff1a;HARDVS: 用动态视觉传感器重新审视人类行为识别 原文链接&#xff1a;HARDVS: Revisiting Human Activity Recognition with Dynamic Vision Sensors| Proceedings of the AAAI Conference on Artificial Intelligencehttps://ojs.aaai.org/index.php/AAAI/ar…

PHP 爬虫如何配置代理 IP(CURL 函数)

在 PHP中 配置代理IP&#xff0c;可以通过设置 CURL 库的选项来实现&#xff0c;代码如下&#xff1a; 当然你要有代理ip来源&#xff0c;比如我用的这个 代理商 &#xff0c;如果想服务稳定不建议找开源代理池&#xff0c;避免被劫持。 <?php // 初始化cURL会话 $ch cu…

数据分析师必备的8个思维框架

什么是框架性思维&#xff1f;它是由一个个的思维框架积累而来。本文介绍分析常用的几个思维框架。 一些职位描述中会要求分析师有框架性思维&#xff0c;能够被考察的是思维框架&#xff0c;通过思维框架判断框架性思维能力。笔者查阅了多篇文章&#xff0c;定义思维框架为&a…

文件上传漏洞-白名单检测

如何确认是否是白名单检测 上传一张图片与上传一个自己构造的后缀&#xff0c;如果只能上传图片不能上传其它后缀文件&#xff0c;说明是白名单检测。 绕过技巧 可以利用 00 截断的方式进行绕过&#xff0c;包括 %00 截断与 0x00 截断。除此之外如果网站存在文件包含漏洞&…

统一SQL 支持Oracle unpivot列转行

统一SQL介绍 https://www.light-pg.com/docs/LTSQL/current/index.html 源和目标 源数据库&#xff1a;Oracle 目标数据库&#xff1a;TDSQL-MySQL 操作目标 在Oracle中&#xff0c;可以使用unpivot将列转换成行&#xff0c;在TDSQL-MySQL中没有对应的功能&#xff0c;由…