Python 脚本:检测 TIFF 图像中相邻像素值为 255 的情况
以下是一个读取 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 开始计数的。如果您需要实际坐标,请根据您的图像大小进行转换。
原文地址: https://www.cveoy.top/t/topic/np5w 著作权归作者所有。请勿转载和采集!