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

cvThreshold и img->imageData

Recommended Posts

Всем привет

После применения cvThreshold и очистки, вот такой результат (сохранил в формате bmp):

cvThreshold(limbusImg, threshold_image, 130, 200, CV_THRESH_BINARY);

5198405348_91979f1a55.jpg

Проблема состоит в том, что в img->imageData есть данные которые не соответствуют данным на рисунке.

for(int j=0; j<height; j++)

{

for(int i=0; i<width; i++)

{

int pixel_value = image[(int)(j)*width+(int)(i)];

log("pixel(%d,%d):%d", i, j, pixel_value);

}

// Белые писксели

pixel(114,62):200

pixel(115,62):200

pixel(116,62):200

pixel(117,62):200

pixel(118,62):200

pixel(119,62):200

pixel(120,62):200

pixel(121,62):200

pixel(122,62):255

pixel(123,62):255

pixel(124,62):200

На рисунке (красний маркер) таких пикселей нету.

Подскажите где собака зарыта.

Спасибо.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Выложи картинку как bmp, сейчас - jpg.

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Не там пиксели берете , где Вам кажется.

У Вас при расчете адреса байта не учитывается выравнивание, надо брать не width, а widthStep это размер строки изображения в байтах, он может, и часто не соответствует ширине изображения.

В документации на IplImage написано так:

"param widthStep:

The size of an aligned image row, in bytes"

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах
Не там пиксели берете , где Вам кажется.

У Вас при расчете адреса байта не учитывается выравнивание, надо брать не width, а widthStep это размер строки изображения в байтах, он может, и часто не соответствует ширине изображения.

В документации на IplImage написано так:

"param widthStep:

The size of an aligned image row, in bytes"

Переделал:

pixel_value1 = ((uchar*)(image->imageData + image->widthStep*y))[x];

Теперь все отлично работает. Огромное спасибо.

Странно конечно. Изображение 8-битное. 1 пиксель - 1 байт. В 2й раз учту етот фактор...

Поделиться сообщением


Ссылка на сообщение
Поделиться на других сайтах

Создайте учётную запись или войдите для комментирования

Вы должны быть пользователем, чтобы оставить комментарий

Создать учётную запись

Зарегистрируйтесь для создания учётной записи. Это просто!

Зарегистрировать учётную запись

Войти

Уже зарегистрированы? Войдите здесь.

Войти сейчас


  • Сейчас на странице   0 пользователей

    Нет пользователей, просматривающих эту страницу

×