как определить соседние линии одного цвета, чтобы обнаружить поврежденную область с помощью python? - PullRequest
0 голосов
/ 14 июля 2020

Я пишу скрипт для поиска поврежденных участков изображения на основе сканирования строк пикселей. Моя идея состоит в том, чтобы 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")
...