Уведомления

Группа в Telegram: @pythonsu

#1 Апрель 6, 2010 02:57:03

S1asH
От:
Зарегистрирован: 2010-02-11
Сообщения: 19
Репутация: +  0  -
Профиль   Отправить e-mail  

аффинное проеобразование

Помогите переписал код с С на путон но возникают какие то проблемы при компиляции
вот код:
from opencv import cv, highgui, adaptors
from PIL import Image, ImageOps, ImageEnhance

im=cvLoadImage(“file.jpg”)
rot_mat=cvCreateMat(2,3,CV_32FC1)
warp_mat=cvCreateMat(2,3,CV_32FC1)
dst=cvCloneImage(im)
cvZero(dst)
pil_im = adaptors.Ipl2PIL(im)
srctri=[(0,0),(pil_im.size-1,0),(0,pil_im.size-1)]
dsttri=[(pil_im.size*0.0,pil_im.size*0.33),(pil_im.size*0.85,pil_im.size*0.25),(pil_im.size*0.15,pil_im.size*0.7)]
cvGetAffineTransform(srctri,dsttri,warp_mat)
cvWarpAffine(im,dst,warp_mat)
cvCopy(dst,im)
center=[(pil_im.size/2,pil_im.size/2)]
angle=-50.0
scale=0.6
cv2DRotationMatrix(center,angle,scale,rot_mat)

cvWarpAffine(im,dst,rot_mat)
cvNamedWindow(“affine”,1)
cvShowImage(“affine”,dst)

наверное не состыковочка в типах переменных.



Офлайн

#2 Апрель 6, 2010 05:57:17

dartNNN
От:
Зарегистрирован: 2009-12-08
Сообщения: 199
Репутация: +  0  -
Профиль   Отправить e-mail  

аффинное проеобразование

Простите, но при какой компиляции и какие проблемы? Вы сами как думаете при такой постановке вопроса вам на что должны отвечать? Опишите проблему поподробнее и тогда можно будет думать.



Офлайн

#3 Апрель 6, 2010 06:02:23

S1asH
От:
Зарегистрирован: 2010-02-11
Сообщения: 19
Репутация: +  0  -
Профиль   Отправить e-mail  

аффинное проеобразование

понял причину не запуск программы. возник другой вопрос как сделать так чтоб тип и все значения в кортеже стали типа float?



Офлайн

#4 Апрель 6, 2010 07:11:21

dartNNN
От:
Зарегистрирован: 2009-12-08
Сообщения: 199
Репутация: +  0  -
Профиль   Отправить e-mail  

аффинное проеобразование

float(number) тебе в помощь. А вообще можно было и книжки посмотреть:) Там обычно про все типы пишут:)



Офлайн

#5 Апрель 6, 2010 07:25:02

UsCr
От:
Зарегистрирован: 2009-11-04
Сообщения: 216
Репутация: +  0  -
Профиль   Отправить e-mail  

аффинное проеобразование

Ну так а в чем ошибка? Как решил?



Офлайн

#6 Апрель 6, 2010 10:23:46

S1asH
От:
Зарегистрирован: 2010-02-11
Сообщения: 19
Репутация: +  0  -
Профиль   Отправить e-mail  

аффинное проеобразование

поменял тип переменных внутри кортежа согласно документаци т.е. заменил
srctri=[(0,0),(pil_im.size-1,0),(0,pil_im.size-1
на
srctri=[CvPoint2D32f(0,0),CvPoint2D32f(pil_im.size-1,0),CvPoint2D32f(0,pil_im.size-1)]
теперь ругается:
srctri=[CvPoint2D32f(0,0),CvPoint2D32f(pil_im.size-1,0),CvPoint2D32f(0,pil_im.size-1)]
TypeError: __init__() takes exactly 1 argument (3 given)



Офлайн

#7 Апрель 7, 2010 07:48:14

dartNNN
От:
Зарегистрирован: 2009-12-08
Сообщения: 199
Репутация: +  0  -
Профиль   Отправить e-mail  

аффинное проеобразование

S1asH
TypeError: __init__() takes exactly 1 argument (3 given)
Это значит, что __init__() принимает только аргумент-указатель на объект (self), т.е. вызывать конструктор класса можно только без аргументов. И путь ваш лежит к документации:) где написано, как работать с этим классом.
ЗЫ. Хотя выглядит это как-то странно, мож я что путаю



Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version