ฉันก็เลยมีโค้ดเล็กๆ น้อยๆ นี้
for x in range(x1,x2):
for y in range(y1, y2):
cpixel = pixels[x, y]
if bw:
bw_value = int(round(sum(cpixel) / float(len(cpixel))))
all_pixels.append(bw_value)
title = "Averaged (B&W) Pixel Values"
else:
if lumi:
luma = (0.3 * cpixel[0]) + (0.59 * cpixel[1]) + (0.11 * cpixel[2])
all_pixels.append(luma)
title = "Pixel Luminosity Values"
else:
if round(sum(cpixel)) / float(len(cpixel)) > 100:
all_pixels.append(255)
else:
all_pixels.append(0)
title = "Pixel Binary Transform Values"
นำมาและแก้ไขเล็กน้อยจากที่นี่ รับรายการค่าพิกเซลจาก PIL เพื่อแสดงรายการค่าพิกเซล (all_pixels) ภายในขอบเขตขอบเขต (ผู้ใช้เลือก)
ฉันกำลังพยายามหาวิธีที่มีประสิทธิภาพในการตรวจจับการเปลี่ยนแปลงภายในรายการหลังจากบันทึกชุดค่าที่คล้ายกันหลายค่าแล้ว เนื่องจากรายการดูเหมือนจะแสดงรายการค่าพิกเซลจากบนลงล่างและจากซ้ายไปขวา ในสถานการณ์ที่ฉันจะใช้มัน มันจะมีรายการค่าที่คล้ายกันจนกระทั่งถึงบริเวณของรูปภาพ ซึ่งค่าต่างๆ จะเริ่มสลับไปมาจนกว่าค่าจะคงที่รอบค่าใหม่อีกครั้ง
สิ่งที่ฉันสนใจคือการติดตามขอบเขตระหว่างสองสิ่งนี้ ฉันต้องการตรวจสอบว่าขอบเขตนี้อยู่ที่ไหน และมันเลื่อนไปทางซ้ายหรือขวา ฉันไม่สามารถคิดวิธีอื่นใดได้นอกจากต้องตรวจสอบแต่ละค่าเนื่องจากค่านั้นต่อท้าย all_pixels แล้วจึงติดตามกลับพิกัด
แต่ถึงแม้สิ่งนี้จะดูค่อนข้างคลุมเครือ เนื่องจากแม้ว่าฉันจะตั้งค่าจำนวนตามอำเภอใจให้เท่ากันก่อนที่ค่าถัดไปที่แตกต่างกันอย่างมีนัยสำคัญจะถูกมองว่าเป็นการเปลี่ยนแปลงที่สำคัญ ไม่ใช่แค่ค่าผิดปกติ หลังจากนั้นค่าต่างๆ จะเริ่มสลับระหว่างค่าเก่า และอันใหม่
ฉันเดาว่าโดยหลักการแล้วฉันจะต้องสร้างเส้นที่เหมาะสมที่สุดสำหรับพิกัดของขอบเขต/เส้นขอบเขตนี้ ฉันแค่ต้องการแนวคิดว่าจะแก้ไขปัญหานี้อย่างไร