numpy 图像的变换

本文介绍了图像处理的基本原理,包括RGB色彩模式和图像的数组表示。通过Python代码展示了如何使用numpy和PIL库将彩色图片转换为灰度图像,并进行了区间变换和像素平方操作,创造出不同的视觉效果。最后,详细阐述了实现手绘图像的过程,涉及图像梯度、光照计算等高级技巧。

一、原理

图像一般使用RGB色彩模式,即每个像素点的颜色由Red,Green,Blue组成
图像是一个由像素组成的二维矩阵,每个元素是一个RGB值
图像的数组表示:
图像是一个三维数组,维度分别是高度、宽度和像素RGB值

二、代码实现

1、

import numpy as np
from PIL import Image
df=np.array(Image.open(r"C:\Users\k\Desktop\QQ图片20191103152635.jpg"))
print(df.shape,df.dtype)
b=[255,255,255]-df
im=Image.fromarray(b.astype('uint8'))
im.save(r"C:\Users\k\Desktop\01.jpg")

2、convert()函数将彩色图片变成一个灰色图片,df对应图片中每一个元素的灰度值,是一个二维数组

import numpy as np
from PIL import Image
df=np.array(Image.open(r"C:\Users\k\Desktop\QQ图片20191103152635.jpg").convert('L'))
print(df.shape,df.dtype)
b=255-df
im=Image.fromarray(b.astype('uint8'))
im.save(r"C:\Users\k\Desktop\01.jpg")

3、区间变换

import numpy as np
from PIL import Image
df=np.array(Image.open(r"C:\Users\k\Desktop\abd.jpg").convert('L'))

c=(100/255)*df+150
im=Image.fromarray(c.astype('uint8'))
im.show(r"C:\Users\k\Desktop\111.jpg")

4、像素平方

import numpy as np
from PIL import Image
df=np.array(Image.open(r"C:\Users\k\Desktop\abd.jpg").convert('L'))

c=255*(df/255)**2
im=Image.fromarray(c.astype('uint8'))
im.show(r"C:\Users\k\Desktop\11.jpg")

5、手绘图像的实现

import numpy as np
from PIL import Image

a=np.array(Image.open(r"C:\Users\k\Desktop\abd.jpg").convert('L')).astype('float')
depth=10
grad=np.gradient(a)    #去图像灰度的梯度值
grad_x,grad_y=grad   #分别取横纵图像梯度值
grad_x=grad_x*depth/100
grad_y=grad_y*depth/100
A=np.sqrt(grad_x**2,grad_y**2+1.)
unit_x=grad_x/A
unit_y=grad_y/A
unit_z=1./A

vec_e1=np.pi/2.2  #光源的俯视角度,弧度值
vec_az=np.pi/4.   #光源的方位角度,弧度值
dx=np.cos(vec_e1)*np.cos(vec_az)  #光源对x轴的影响
dy=np.sin(vec_e1)*np.sin(vec_az)  #光源对y轴的影响
dz=np.sin(vec_e1)                 #光源对z轴的影响

b=255*(dx*unit_x+dy*unit_y+dz*unit_z)#光源归一化
b=b.clip(0,255)

im=Image.fromarray(b.astype('uint8'))  #重构图像
im.save(r"C:\Users\k\Desktop\uu.jpg")

本课题设计了一种利用Matlab平台开发的植物叶片健康状态识别方案,重点融合了色彩与纹理双重特征以实现对叶片病害的自动化判别。该系统构建了直观的图形操作界面,便于用户提交叶片影像并快速获得分析结论。Matlab作为具备高效数值计算与数据处理能力的工具,在图像分析与模式分类领域应用广泛,本项目正是借助其功能解决农业病害监测的实际问题。 在色彩特征分析方面,叶片影像的颜色分布常与其生理状态密切相关。通常,健康的叶片呈现绿色,而出现黄化、褐变等异常色彩往往指示病害或虫害的发生。Matlab提供了一系列图像处理函数,例如可通过色彩空间转换与直方图统计来量化颜色属性。通过计算各颜色通道的统计参数(如均值、标准差及主成分等),能够提取具有判别力的色彩特征,从而为不同病害类别的区分提供依据。 纹理特征则用于描述叶片表面的微观结构与形态变化,如病斑、皱缩或裂纹等。Matlab中的灰度共生矩阵计算函数可用于提取对比度、均匀性、相关性等纹理指标。此外,局部二值模式与Gabor滤波等方法也能从多尺度刻画纹理细节,进一步增强病害识别的鲁棒性。 系统的人机交互界面基于Matlab的图形用户界面开发环境实现。用户可通过该界面上传待检图像,系统将自动执行图像预处理、特征抽取与分类判断。采用的分类模型包括支持向量机、决策树等机器学习方法,通过对已标注样本的训练,模型能够依据新图像的特征向量预测其所属的病害类别。 此类课题设计有助于深化对Matlab编程、图像处理技术与模式识别原理的理解。通过完整实现从特征提取到分类决策的流程,学生能够将理论知识与实际应用相结合,提升解决复杂工程问题的能力。总体而言,该叶片病害检测系统涵盖了图像分析、特征融合、分类算法及界面开发等多个技术环节,为学习与掌握基于Matlab的智能检测技术提供了综合性实践案例。 资源来源于网络分享,仅用于学习交流使用,请勿用于商业,如有侵权请联系我删除!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值