Python数字图像处理,python图像处理实战 豆瓣
本文主要介绍python数字图像处理中像素访问和裁剪实例的详细说明。有需要的朋友可以借鉴一下,希望能有所帮助。祝大家进步很大,早日升职加薪。
00-1010简介:对彩色图片的访问如下:对灰度图片的访问如下:示例1:用于输出小猫图片的G通道中第20行第30列的像素值示例2:显示红色单通道图片示例3:对小猫图片随机添加椒盐噪声示例4:裁剪小猫图片示例5:二值化lena图片示例6:判断R通道的所有像素值。
目录
图片读入程序后,以numpy数组的形式存在。所以numpy数组的所有函数也适用于图片。对数组元素的访问实际上是对图片像素的访问。
引言
国际货币基金组织
I代表图片的行数,J代表图片的列数,C代表图片的通道数(RGB通道分别对应0、1、2)。坐标从左上角开始。
彩色图片访问方式为:
灰色的
灰度图片访问方式为:
从skimage导入io,数据
img=data.chelsea()
pixel=img[20,30,1]
打印(像素)
输出是129。
例1:输出小猫图片的G通道中的第20行30列的像素值
从skimage导入io,数据
img=data.chelsea()
R=img[:0]
io.imshow(R)
除了读取像素,还可以修改像素值。
例2:显示红色单通道图片
从skimage导入io,数据
将numpy作为np导入
img=data.chelsea()
#随机生成5000个盐和胡椒
rows,cols,dims=img.shape
对于范围(5000):内的I
x=np.random.randint(0,行)
y=np.random.randint(0,cols)
img[x,y,]=255
io.imshow(img)
numpy包中的Random在这里用来生成随机数,randint(0,cols)的意思是随机生成一个整数,取值范围在0到cols之间。
使用img[x,y,]=255修改像素值,将原来的三通道像素值改为255。
通过裁剪数组,可以裁剪图片。
例3:对小猫图片随机添加椒盐噪声
从skimage导入io,数据
img=data.chelsea()
roi=img[80:180,100:200,]
io.imshow(roi)
对多个像素进行操作,并通过数组切片来访问它们。slice方法返回以指定的间隔下标访问的数组的像素值。以下是一些灰度图像的示例:
Img[i,]=im[j,] #将J行中的值赋给I行。
IMG [3360,I]=100 #将I列中的所有值设置为100。
IMG [3360100,50]。sum () #计算前100行和50列中所有值的总和。
IMG [50:100,503360100] # 50~100行和50~100列(不包括第100行和第100列)
Img[i]。mean() #第I行中所有值的平均值
IMG [3360,-1] #最后一栏
Img[-2,](或im[-2]) #倒数第二行
最后,让我们看看访问和更改像素值的两个示例:
例4:对小猫图片进行裁剪
如果像素值大于128,则变为1,否则变为0。
从skimage导入io、数据、颜色
img=data.lena()
img_gray=color.rgb2gray(img)
rows,cols=img_gray.shape
对于范围(行):中的I
对于范围内的j(列):
if (img_gray[i,j]lt;=0.5):
img_gray[i,j]=0
else:
img_gray[i,j]=1
io.imshow(img_gray)
在此示例中,颜色模块的rgb2gray()函数用于将彩色三通道图片转换为灰度图像。结果被转换为float64类型的数组,范围为[0,1]。
例5:将lena图片进行二值化
从skimage导入io,数据
img=data.chelsea()
red=img[:0]gt;170
img[red]=[0,255,0]
io.imshow(img)
在这个例子中,首先判断R通道的所有像素值。如果大于170,这个地方的像素值就改成[0,255,0],也就是G通道的值是255,R和B通道的值是0。
以上是python数字图像处理中像素访问和裁剪的详细例子。更多关于python数字图像处理像素访问和裁剪的信息,请关注热门IT软件开发工作室的其他相关文章!
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。