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

图像处理技术与应用入门

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

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

python 复制代码
from skimage import io

img = io.imread("dd.jpg", as_gray=True)

io.imshow(img)

io.show()

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

原图

灰度图像

使用 skimage读取内置测试图像****

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

python 复制代码
from skimage import data

img = data.hubble_deep_field()

io.imshow(img)

显示了Hubble深空图像。

读取图像并保存

python 复制代码
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)

使用 PIL** skimage复制图像到新文件夹**

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

python 复制代码
from PIL import Image

import os

from 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))

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

使用matplotlib和skimage分析图像属性

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

python 复制代码
import matplotlib.pyplot as plt

from skimage import io



img = 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调整图像大小和显示不同颜色通道的示例:

python 复制代码
import cv2



img = cv2.imread('aa.jpg')



#调整图像大小为300x300

img = cv2.resize(img, (300, 300))

cv2.imshow("img show", img)



# 读取蓝色通道,最后一个值为0

b = img[:, :, 0]

# 读取绿色通道,最后一个值为 1

g = img[:, :, 1]

# 读取红色通道,最后一个值为 2

r = img[:, :, 2]



# 分别显示

cv2.imshow("b", b)

cv2.imshow("g", g)

cv2.imshow("r", r)



cv2.waitKey()

cv2.destroyAllWindows()

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

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

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

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

相关推荐
张较瘦_5 分钟前
[论文阅读] 人工智能 + 软件工程 | 用大语言模型+排名机制,让代码评论自动更新更靠谱
论文阅读·人工智能·软件工程
前端双越老师6 分钟前
使用 langChain.js 实现 RAG 知识库语义搜索
人工智能·langchain·node.js
用户315183718179 分钟前
AI Agent 开发新范式 MCP 从入门到多场景全链路实战 | 高清同步
人工智能
甲方求你学点技术吧44 分钟前
8:从USB摄像头把声音拿出来--ALSA大佬登场!
linux·图像处理·ffmpeg·音视频
鼓掌MVP1 小时前
破局与重构:文心大模型开源的产业变革密码
人工智能·重构·开源
蹦蹦跳跳真可爱5891 小时前
Python----NLP自然语言处理(中文分词器--jieba分词器)
开发语言·人工智能·python·自然语言处理·中文分词
蹦蹦跳跳真可爱5892 小时前
Python----OpenCV(图像分割——彩色图像分割,GrabCut算法分割图像)
开发语言·图像处理·人工智能·python·opencv·计算机视觉
charley.layabox8 小时前
8月1日ChinaJoy酒会 | 游戏出海高端私享局 | 平台 × 发行 × 投资 × 研发精英畅饮畅聊
人工智能·游戏
DFRobot智位机器人8 小时前
AIOT开发选型:行空板 K10 与 M10 适用场景与选型深度解析
人工智能
想成为风筝10 小时前
从零开始学习深度学习—水果分类之PyQt5App
人工智能·深度学习·计算机视觉·pyqt