以下是一个读取 TIFF 图像并检测相邻像素是否为 255 的 Python 脚本。其中 X 的值可以在代码中修改。如果有 X 个相邻像素为 255,则会在同一目录下生成一个名为 'fail.txt' 的文件,其中包含所有失败的像素的坐标信息。

import numpy as np
from PIL import Image

# 读取 TIFF 图像为二维数组
def read_tiff(filename):
    img = Image.open(filename)
    return np.array(img)

# 判断相邻像素是否有值为 255
def check_255(arr, x, y):
    # 修改 X 的值
    X = 3
    for i in range(-X, X+1):
        for j in range(-X, X+1):
            if i == 0 and j == 0:
                continue
            if x+i < 0 or x+i >= arr.shape[0] or y+j < 0 or y+j >= arr.shape[1]:
                continue
            if arr[x+i][y+j] == 255:
                return True
    return False

# 生成 txt 文件记录检测结果
def write_fail_info(fail_list):
    with open('fail.txt', 'w') as f:
        for x, y in fail_list:
            f.write('({}, {})\n'.format(x, y))

# 主函数
def main():
    # 读取 TIFF 图像
    arr = read_tiff('image.tiff')
    fail_list = []
    # 遍历数组并检测相邻像素是否为 255
    for i in range(arr.shape[0]):
        for j in range(arr.shape[1]):
            if arr[i][j] == 255 and check_255(arr, i, j):
                fail_list.append((i, j))
    # 如果有失败的像素,生成 txt 文件记录坐标信息
    if fail_list:
        print('fail')
        write_fail_info(fail_list)
    else:
        print('success')

if __name__ == '__main__':
    main()

注意:由于 Python 中的数组索引是从 0 开始的,因此代码中的坐标信息也是从 0 开始计数的。如果您需要实际坐标,请根据您的图像大小进行转换。

Python 脚本:检测 TIFF 图像中相邻像素值为 255 的情况

原文地址: https://www.cveoy.top/t/topic/np5w 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录