2015-11-10 7 views
1

Мне нужно использовать позиции x и y двух отдельных кортежей как один кортеж, чтобы ввести его в следующую часть моего кода, любая помощь будет оценена.Использование позиций X и Y из разных кортежей в качестве входных данных

img1 = Image('img1.jpg') 
blobs1 = img1.findBlobs() 
if blobs1: 
    print blobs1 
else: 
    print ERROR 

img2 = Image('img2.jpg') 
blobs2 = img2.findBlobs() 
if blobs2: 
    print blobs2 
else: 
    print ERROR 

Это печатает две строки

[SimpleCV.Features.Blob.Blob object at (500, 600) with area 50] 
[SimpleCV.Features.Blob.Blob object at (200, 800) with area 67] 

Как я могу использовать позицию X первой строки и позиции Y второй линии, как X- и Y-позиции нового кортежа, чтобы получить цвет в новой позиции XY на другом изображении?

pixcol = Image('img.jpg') 
colrgb = pixcol[ 'new XY tuple' ] 
print colrgb 

ответ

2

РЕДАКЦИЯ

использование BLOB .coordinates()

pixcol = Image('img.jpg') 

tup1 = pixcol.findBlobs().x # tup1 = X 
tup2 = pixcol.findBlobs().y # tup2 = Y 

colrgb = pixcol[(tup1,tup2)] # insert the tuple 
print colrgb 

Так что в вашем реальном коде, вы бы иметь:

... 
if blobs1: 
    tup1 = blobs1.x 
... 
if blobs2: 
    tup2 = blobs2.x 
... 
pixcol = Image('img.jpg') 
colrgb = pixcol[(tup1,tup2)] 
print colrgb 
+0

Я получаю ошибку не attributr «split», также я не вручную вводил позиции X и Y из двух строк печатного кода, является re способ извлечь эти две точки автоматически. Спасибо. –

+2

Хорошо, я немного почитал, и кажется, что вы можете легко получить координаты: используйте * blob * .coordinates(). Я попробую отредактировать мой ответ. –

+1

@ HansVK удивительный. Я подумал, что есть что-то подобное, но документация SimpleCV на самом деле не существует. Спасибо за рытье в этом –