以下是一个读取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 图像为二维数组判断数组内X个相邻数据是否有值为255的X可以改变如果有X 个相邻数据为255标明第一个数据的坐标并生成一个txt文件记录显示为fail并标明坐标信息

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

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