用python读取图像中非零点的像素(读取图片中目标的尺寸大小)

这篇博客介绍如何利用Python读取图像中非零像素点的值,特别是在处理含有特定目标的图像时。文中提供了代码示例,强调了遍历图像通道和行列的注意事项,并提到在PIL库中获取图像尺寸的正确方法。
摘要由CSDN通过智能技术生成

代码主要用于读取图片中非零像素点的像素值

比如,读取下面图片中绿点的像素值

 


代码如下:

from PIL import Image
import numpy as np

image = Image.open('./image.png')     #图片的路径

a, b = image.size                     #获得图像的长、宽

for i in range(a):                    #遍历图像的行
    for j in range(b):                #遍历图像的列
        pixel = image.getpixel((i,j)) #读取该点的像素值
        if pixel != ((0,0,0)):
                print('pixel:',pixel)

这里要注意:

1.如果也要遍历通道数,则把

a, b = image.size

替换成

a, b, c = image.size

2.在for循环中,不能直接用"for i in a",是因为int型不能迭代。

3.另外图片中常用的代码有:

type(image)    #图片类型
image.size     #图片的大小
image.mode     #图片是gray还是RGB

4.PIL中不能使用image.shape。

 

  • 0
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,我可以帮你解答这个问题。 首先,NDVI(归一化植被指数)是一种用于评估地表覆盖植被的指数。它的计算公式如下: NDVI = (NIR - RED) / (NIR + RED) 其,NIR表示近红外波段的反射率,RED表示红色波段的反射率。 为了得到植被增加、减少、不变的区域,我们需要对两个NDVI矩阵进行比较。假设这两个矩阵分别为ndvi1和ndvi2,我们可以按照以下步骤进行计算: 1. 导入所需的库和数据: ```python import numpy as np import pandas as pd ndvi1 = np.load('ndvi1.npy') # 第一个NDVI矩阵 ndvi2 = np.load('ndvi2.npy') # 第二个NDVI矩阵 ``` 2. 计算NDVI差异矩阵: ```python ndvi_diff = ndvi2 - ndvi1 ``` 3. 根据阈值确定植被增加、减少、不变的区域: ```python threshold = 0.1 # 设定阈值为0.1 increase = ndvi_diff > threshold decrease = ndvi_diff < -threshold no_change = np.logical_and(ndvi_diff >= -threshold, ndvi_diff <= threshold) ``` 4. 计算各个区域的面积: ```python pixel_size = 30 # 假设每个像素大小为30平方米 increase_area = np.sum(increase) * pixel_size decrease_area = np.sum(decrease) * pixel_size no_change_area = np.sum(no_change) * pixel_size ``` 5. 将结果保存为表格: ```python data = {'Area': [increase_area, decrease_area, no_change_area], 'Status': ['Increase', 'Decrease', 'No change']} result = pd.DataFrame(data) ``` 这样,我们就可以通过这段代码得到植被增加、减少、不变的区域的面积统计表格了。需要注意的是,这只是一种简单的方法,实际应用可能需要更加复杂的处理方法。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值