Перейти к содержимому
Compvision.ru

alexfriend

Пользователи
  • Количество публикаций

    2
  • Зарегистрирован

  • Посещение

Репутация

0 Новичек

О alexfriend

  • Звание
    Новичок
  1. Работа со скалярами и матрицами

    1. Ну в нужной мне реализации фильтра считается первая производная. I_mx = I-I(:,[1 1:nx-1]); I_px = I(:,[2:nx nx])-I; I_my = I-I([1 1:ny-1],; I_py = I([2:ny ny],-I; I_x = (I_mx+I_px)/2; ... a_grad_I = sqrt(Dx.^2+Dy.^2); [/code] Я попробовал оператор Собеля, но значения не совпали. Как именно лучше ходить по сырым изображениям? Через ptr, как на робофоруме писали? [code] for( int y=0; y<image->height; y++ ) { uchar* ptr = (uchar*) (image->imageData + y * image->widthStep); for( int x=0; x<image->width; x++ ) { ptr[3*x] = 0; // B ptr[3*x+1] = 0; // G ptr[3*x+2] = 255; // R } } 2. Проблема оказалась не в скалярах. Указанные выше преобразования влекут появление отрицательных интенсивностей. Таким образом, мне надо передать в функцию изображение, вытащить из него сырую матрицу cvMat, а с ней уже делать то, что нужно. У нее, надеюсь, нету обнуления отрицательных значений val. Вопрос, как именно вытащить эту матрицу? Нашел такой пример, но не разобрался еще. .. CvMat hdr; CvMat *mass = cvReshape(image,&hdr,1); .. Извиняюсь за наивные вопросы, с библиотекой еще не познакомился как надо.
  2. Добрый день. Возник пару вопросов по OpenCV. Реализую шоковый фильтр изображения, для вычисления производных необходимы некоторые арифметические преобразования над матрицами. 1. Подскажите, разумно ли использовать функции cvGet2D и cvSet2D для этого? 2. Никак не найду функции для работы со скалярами. К примеру, необходимо присвоить значения некоторым элементам в матрице изображения. Приходится обращаться к полю val скаляра. Есть ли какие-либо заготовленные функции? Покопавшись в коде самой библиотеки для работы со скаляром нашел разве что функцию cvRawDataToScalar Спасибо.
×