π ΠΠ°ΠΊ Π½Π°ΠΉΡΠΈ ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°ΡΡ ΠΏΠΈΠΊΡΠ΅Π»Ρ ΠΏΠΎ ΡΠ²Π΅ΡΡ Π² Python? π
ΠΠΎΡ ΠΊΠΎΠ΄ Π½Π° Python, ΠΊΠΎΡΠΎΡΡΠΉ ΠΏΠΎΠΌΠΎΠΆΠ΅Ρ Π²Π°ΠΌ Π½Π°ΠΉΡΠΈ ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°ΡΡ ΠΏΠΈΠΊΡΠ΅Π»Ρ ΠΏΠΎ ΡΠ²Π΅ΡΡ:
from PIL import Image
def find_pixel_coords(image_path, target_color):
image = Image.open(image_path)
pixel_list = []
for y in range(image.height):
for x in range(image.width):
pixel = image.getpixel((x, y))
if pixel == target_color:
pixel_list.append((x, y))
return pixel_list
image_path = "ΠΏΡΡΡ_ΠΊ_ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ.png"
target_color = (255, 0, 0) # ΠΡΠΈΠΌΠ΅Ρ ΡΠ²Π΅ΡΠ° (ΠΊΡΠ°ΡΠ½ΡΠΉ)
coords = find_pixel_coords(image_path, target_color)
print(coords)
ΠΠ΅ΡΠ°Π»ΡΠ½ΡΠΉ ΠΎΡΠ²Π΅Ρ
ΠΠ°ΠΊ Π½Π°ΠΉΡΠΈ ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°ΡΡ ΠΏΠΈΠΊΡΠ΅Π»Ρ ΠΏΠΎ ΡΠ²Π΅ΡΡ Π² Python
ΠΠ°Ρ Π²ΠΎΠΏΡΠΎΡ ΠΎΡΠ΅Π½Ρ ΠΈΠ½ΡΠ΅ΡΠ΅ΡΠ½ΡΠΉ! ΠΡΠ»ΠΈ Π²Ρ Ρ ΠΎΡΠΈΡΠ΅ ΠΈΠ·Π²Π»Π΅ΡΡ ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°ΡΡ ΠΏΠΈΠΊΡΠ΅Π»Ρ ΠΏΠΎ Π΅Π³ΠΎ ΡΠ²Π΅ΡΡ Π² ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠΈ, Python ΠΏΡΠ΅Π΄Π»Π°Π³Π°Π΅Ρ Π½Π΅ΡΠΊΠΎΠ»ΡΠΊΠΎ ΡΠΏΠΎΡΠΎΠ±ΠΎΠ² Π΄ΠΎΡΡΠΈΠΆΠ΅Π½ΠΈΡ ΡΡΠΎΠΉ ΡΠ΅Π»ΠΈ. ΠΠ°Π²Π°ΠΉΡΠ΅ ΡΠ°ΡΡΠΌΠΎΡΡΠΈΠΌ Π΄Π²Π° ΠΈΠ· Π½ΠΈΡ : ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ PIL (Python Imaging Library) ΠΈ OpenCV.
ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ PIL
ΠΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° PIL ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π»ΡΠ΅Ρ ΡΠ΄ΠΎΠ±Π½ΡΠ΅ ΡΡΠ½ΠΊΡΠΈΠΈ Π΄Π»Ρ ΡΠ°Π±ΠΎΡΡ Ρ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡΠΌΠΈ Π² Python. ΠΠ»Ρ Π½Π°Ρ ΠΎΠΆΠ΄Π΅Π½ΠΈΡ ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°Ρ ΠΏΠΈΠΊΡΠ΅Π»Ρ ΠΏΠΎ Π΅Π³ΠΎ ΡΠ²Π΅ΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ PIL, ΠΌΡ ΠΌΠΎΠΆΠ΅ΠΌ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡ ΡΠ»Π΅Π΄ΡΡΡΠΈΠΉ ΠΊΠΎΠ΄:
from PIL import Image
def find_pixel_coordinates(image_path, target_color):
image = Image.open(image_path)
width, height = image.size
for y in range(height):
for x in range(width):
pixel_color = image.getpixel((x, y))
if pixel_color == target_color:
return x, y
return None
# ΠΡΠΈΠΌΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΡΡΠ½ΠΊΡΠΈΠΈ
image_path = "ΠΏΡΡΡ_ΠΊ_ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ.png"
target_color = (255, 0, 0) # Π¦Π΅Π»Π΅Π²ΠΎΠΉ ΡΠ²Π΅Ρ: ΠΊΡΠ°ΡΠ½ΡΠΉ
coordinates = find_pixel_coordinates(image_path, target_color)
if coordinates is not None:
print(f"ΠΠΎΠΎΡΠ΄ΠΈΠ½Π°ΡΡ ΠΏΠΈΠΊΡΠ΅Π»Ρ: x = {coordinates[0]}, y = {coordinates[1]}")
else:
print("ΠΠΈΠΊΡΠ΅Π»Ρ Ρ ΡΠΊΠ°Π·Π°Π½Π½ΡΠΌ ΡΠ²Π΅ΡΠΎΠΌ Π½Π΅ Π½Π°ΠΉΠ΄Π΅Π½.")
Π ΡΡΠΎΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠ΅ ΠΌΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅ΠΌ ΡΡΠ½ΠΊΡΠΈΡ find_pixel_coordinates
, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΏΡΠΈΠ½ΠΈΠΌΠ°Π΅Ρ ΠΏΡΡΡ ΠΊ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ ΠΈ ΡΠ΅Π»Π΅Π²ΠΎΠΉ ΡΠ²Π΅Ρ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ². ΠΠ°ΡΠ΅ΠΌ ΠΌΡ ΠΎΡΠΊΡΡΠ²Π°Π΅ΠΌ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ Ρ ΠΏΠΎΠΌΠΎΡΡΡ Image.open()
ΠΈ ΠΏΡΠΎΡ
ΠΎΠ΄ΠΈΠΌΡΡ ΠΏΠΎ Π²ΡΠ΅ΠΌ ΠΏΠΈΠΊΡΠ΅Π»ΡΠΌ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ, ΠΈΡΠΏΠΎΠ»ΡΠ·ΡΡ ΡΠΈΠΊΠ»Ρ for
. ΠΠ»Ρ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΠΏΠΈΠΊΡΠ΅Π»Ρ ΠΌΡ ΠΏΠΎΠ»ΡΡΠ°Π΅ΠΌ Π΅Π³ΠΎ ΡΠ²Π΅Ρ Ρ ΠΏΠΎΠΌΠΎΡΡΡ image.getpixel()
ΠΈ ΡΡΠ°Π²Π½ΠΈΠ²Π°Π΅ΠΌ Π΅Π³ΠΎ Ρ ΡΠ΅Π»Π΅Π²ΡΠΌ ΡΠ²Π΅ΡΠΎΠΌ. ΠΡΠ»ΠΈ ΡΠ²Π΅ΡΠ° ΡΠΎΠ²ΠΏΠ°Π΄Π°ΡΡ, ΠΌΡ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅ΠΌ ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°ΡΡ ΠΏΠΈΠΊΡΠ΅Π»Ρ.
ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ OpenCV
OpenCV - ΡΡΠΎ ΠΌΠΎΡΠ½Π°Ρ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° ΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΠ½ΠΎΠ³ΠΎ Π·ΡΠ΅Π½ΠΈΡ, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΌΠΎΠΆΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°ΡΡΡΡ Π΄Π»Ρ ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠΈ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠΉ. ΠΠΎΡ ΠΊΠ°ΠΊ ΠΌΠΎΠΆΠ½ΠΎ Π½Π°ΠΉΡΠΈ ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°ΡΡ ΠΏΠΈΠΊΡΠ΅Π»Ρ ΠΏΠΎ Π΅Π³ΠΎ ΡΠ²Π΅ΡΡ Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΠ΅ΠΌ OpenCV:
import cv2
import numpy as np
def find_pixel_coordinates(image_path, target_color):
image = cv2.imread(image_path)
height, width, _ = image.shape
target_color = np.array(target_color, dtype=np.uint8)
for y in range(height):
for x in range(width):
pixel_color = image[y, x]
if np.array_equal(pixel_color, target_color):
return x, y
return None
# ΠΡΠΈΠΌΠ΅Ρ ΠΈΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½ΠΈΡ ΡΡΠ½ΠΊΡΠΈΠΈ
image_path = "ΠΏΡΡΡ_ΠΊ_ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ.png"
target_color = [255, 0, 0] # Π¦Π΅Π»Π΅Π²ΠΎΠΉ ΡΠ²Π΅Ρ: ΠΊΡΠ°ΡΠ½ΡΠΉ
coordinates = find_pixel_coordinates(image_path, target_color)
if coordinates is not None:
print(f"ΠΠΎΠΎΡΠ΄ΠΈΠ½Π°ΡΡ ΠΏΠΈΠΊΡΠ΅Π»Ρ: x = {coordinates[0]}, y = {coordinates[1]}")
else:
print("ΠΠΈΠΊΡΠ΅Π»Ρ Ρ ΡΠΊΠ°Π·Π°Π½Π½ΡΠΌ ΡΠ²Π΅ΡΠΎΠΌ Π½Π΅ Π½Π°ΠΉΠ΄Π΅Π½.")
Π ΡΡΠΎΠΌ ΠΏΡΠΈΠΌΠ΅ΡΠ΅ ΠΌΡ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ΅ΠΌ ΡΡΠ½ΠΊΡΠΈΡ find_pixel_coordinates
, ΠΊΠΎΡΠΎΡΠ°Ρ ΠΏΡΠΈΠ½ΠΈΠΌΠ°Π΅Ρ ΠΏΡΡΡ ΠΊ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ ΠΈ ΡΠ΅Π»Π΅Π²ΠΎΠΉ ΡΠ²Π΅Ρ Π² ΠΊΠ°ΡΠ΅ΡΡΠ²Π΅ ΠΏΠ°ΡΠ°ΠΌΠ΅ΡΡΠΎΠ². ΠΡ ΡΡΠΈΡΡΠ²Π°Π΅ΠΌ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ Ρ ΠΏΠΎΠΌΠΎΡΡΡ cv2.imread()
ΠΈ ΠΏΠΎΠ»ΡΡΠ°Π΅ΠΌ Π΅Π³ΠΎ ΡΠ°Π·ΠΌΠ΅ΡΡ Ρ ΠΏΠΎΠΌΠΎΡΡΡ image.shape
. ΠΠ°ΡΠ΅ΠΌ ΠΌΡ ΡΠΎΠ·Π΄Π°Π΅ΠΌ ΠΌΠ°ΡΡΠΈΠ² ΡΠ΅Π»Π΅Π²ΠΎΠ³ΠΎ ΡΠ²Π΅ΡΠ° Ρ ΠΏΠΎΠΌΠΎΡΡΡ np.array()
ΠΈ ΡΡΠ°Π²Π½ΠΈΠ²Π°Π΅ΠΌ ΠΊΠ°ΠΆΠ΄ΡΠΉ ΠΏΠΈΠΊΡΠ΅Π»Ρ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΡ Ρ ΡΠ΅Π»Π΅Π²ΡΠΌ ΡΠ²Π΅ΡΠΎΠΌ Ρ ΠΏΠΎΠΌΠΎΡΡΡ np.array_equal()
. ΠΡΠ»ΠΈ ΡΠ²Π΅ΡΠ° ΡΠΎΠ²ΠΏΠ°Π΄Π°ΡΡ, ΠΌΡ Π²ΠΎΠ·Π²ΡΠ°ΡΠ°Π΅ΠΌ ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°ΡΡ ΠΏΠΈΠΊΡΠ΅Π»Ρ.
Π£ ΠΎΠ±Π΅ΠΈΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊ Π΅ΡΡΡ ΡΠ²ΠΎΠΈ ΡΠΈΠ»ΡΠ½ΡΠ΅ ΡΡΠΎΡΠΎΠ½Ρ ΠΈ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ. ΠΠΎΡΡΠΎΠΌΡ Π²ΡΠ±ΠΎΡ ΠΌΠ΅ΠΆΠ΄Ρ Π½ΠΈΠΌΠΈ Π±ΡΠ΄Π΅Ρ Π·Π°Π²ΠΈΡΠ΅ΡΡ ΠΎΡ Π²Π°ΡΠΈΡ ΠΏΡΠ΅Π΄ΠΏΠΎΡΡΠ΅Π½ΠΈΠΉ ΠΈ ΡΡΠ΅Π±ΠΎΠ²Π°Π½ΠΈΠΉ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΠΎΠ³ΠΎ ΠΏΡΠΎΠ΅ΠΊΡΠ°.
Π’Π°ΠΊΠΈΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ, Π²Ρ ΡΠ΅ΠΏΠ΅ΡΡ Π·Π½Π°Π΅ΡΠ΅, ΠΊΠ°ΠΊ Π½Π°ΠΉΡΠΈ ΠΊΠΎΠΎΡΠ΄ΠΈΠ½Π°ΡΡ ΠΏΠΈΠΊΡΠ΅Π»Ρ ΠΏΠΎ Π΅Π³ΠΎ ΡΠ²Π΅ΡΡ Π² Python Ρ ΠΏΠΎΠΌΠΎΡΡΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊ PIL ΠΈ OpenCV. Π― Π½Π°Π΄Π΅ΡΡΡ, ΡΡΠΎ ΡΡΠ° ΡΡΠ°ΡΡΡ Π±ΡΠ»Π° ΠΏΠΎΠ»Π΅Π·Π½ΠΎΠΉ Π΄Π»Ρ Π²Π°Ρ ΠΈ ΠΏΠΎΠΌΠΎΠ³Π»Π° Π² ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ΅ Π²Π°ΡΠ΅Π³ΠΎ ΠΏΡΠΎΠ΅ΠΊΡΠ°.