LINUX.ORG.RU

[python][OpenCV] RGB -> Grayscale

 ,


0

1

Привет. Начал копаться в OpenCV, но тут же наткнулся на странную вещь: не получается сконвертировать цветное изображение в серое по неизвестным причинам.

Пробую такой код:

import cv

img = cv.LoadImage("1.jpg", 1)
gray = cv.CloneImage(img)
cv.Zero(gray)

cv.CvtColor(img, gray, cv.CV_RGB2GRAY)

И получаю каждый раз ошибку:

error: dst.data == dst0.data

Наверное я где-то дико туплю, но перепробовал кучу разных способов, пролистал все найденые мануалы, но всё равно не работает =(

PS: Python 2.7 OpenCV 2.3

★★★★★

Последнее исправление: kranky (всего исправлений: 1)

Ответ на: комментарий от adriano32

>https://code.ros.org/trac/opencv/browser/trunk/opencv/modules/core/src/dxt.cp...

А можно ещё небольшой комментарий к ссылке? А то всё равно не понятно, что там в исходнике DFT такого, что поможет конвертировать цветное изображение в серое.

Если это:

CV_Assert( dst.data == dst0.data ); // otherwise it means that the destination size or type was incorrect


То непонятно, почему тип или размер неправильные, ибо по документации они могут быть одинаковыми у исходного и результирующего изображений. (У результирующего можно оставить только 1 канал, но это всё равно не помогает).

kranky ★★★★★
() автор топика
Ответ на: комментарий от madcore

>А если так?

gray = cv.CreateImage ((img.width, img.height), 8, 1)



Поразительно, но этот вариант работает 0о

При том, что вариант из мануала

gray = cv.CreateImage(cv.GetSize(image), 8, 1)

выдаёт всю ту же ошибку.


Спасибо!

kranky ★★★★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.