Я пишу скрипт для поиска поврежденных участков изображения на основе сканирования строк пикселей. Моя идея состоит в том, чтобы go построчно и сравнить все значения пикселей, если они имеют одинаковое значение, а затем сохранить количество линий и цветов. Затем проверьте, смежны ли линии одного цвета. Но я проверил несколько поврежденных изображений, которые он не обнаружил. Можете ли вы дать мне предложения или советы по исправлению моего сценария? Большое спасибо
from PIL import Image
import cv2
import numpy as np
path = "D://python/Check_file/folderA/S165/S165333_1417x952.jpg"
im = Image.open(path).convert('L')
im_array = np.array(im)
width, height = im.size
print(height, width)
a=[]
flag=0
for i in range(0, height):#check for each row
flag=0
pix1=im_array[i][0]#color values at the beginning of the line
for j in range(1, width):
if im_array[i][j] == pix1:
#check if the remaining colors in the line are the same as the first color of the line
flag+=1
if flag==(width-1):#condition that the colors in the line have the same value
a.append([i,im_array[i][j]])
nb_row=[]
print(len(a))
for i in range(0,len(a)-1):
if( a[i][1]==a[i+1][1]):
nb_row.append(a[i][0])
if len(nb_row)>=2:
print("corrupted")