Форум программистов, компьютерный форум CyberForum.ru

Доступ к пикселям одноканального изображения. OpenCV - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 9, средняя оценка - 4.89
broDiaga_cpp
 Аватар для broDiaga_cpp
19 / 9 / 1
Регистрация: 20.02.2010
Сообщений: 180
30.09.2013, 14:07     Доступ к пикселям одноканального изображения. OpenCV #1
Хочу получить доступ к пикселям одноканального изображения. Делаю так:
C++
1
2
3
4
5
6
7
8
9
unsigned __int64 result = 0;
    for( int y = frame_y; y < frame_y + frame_height; y++ ) 
    {
        uchar* ptr = (uchar*) (img->imageData + y * img->widthStep);
        for( int x = frame_x; x < frame_x + frame_width; x++ ) 
        {
            result += static_cast<int>(ptr[3*x]);
        }
    }
Но значения static_cast<int>(ptr[3*x]) выдаются какие-то некорректные. Лежат в пределах от 0 до 255, но что белый цвет, что чёрный - практически всегда выдаётся значение примерно равное 200.

В трёхканальном изображении доступ идёт к ptr[3*x], ptr[3*x+1], ptr[3*x+2]. А здесь просто ptr[3*x]?

Добавлено через 9 минут
Ошибку нашёл. Тема закрыта.
C++
1
2
3
4
5
6
7
8
9
unsigned __int64 result = 0;
    for( int y = frame_y; y < frame_y + frame_height; y++ ) 
    {
        uchar* ptr = (uchar*) (img->imageData + y * img->widthStep);
        for( int x = frame_x; x < frame_x + frame_width; x++ ) 
        {
            result += static_cast<int>(ptr[x]);
        }
    }
*необходимо было обращаться к ptr[x], а не к ptr[3*x]
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
30.09.2013, 14:07     Доступ к пикселям одноканального изображения. OpenCV
Посмотрите здесь:

OpenCV C++
Разобрать GIF файл по пикселям и вывести в матрицу C++
C++ загрузить в програму изображения формата jpg и получить доступ к каждому пискселю
OpenCV C++
OpenCV C++
C++ Работа с изображениями (доступ к пикселям изображения)
OpenCV: получить гистограммы каналов для области изображения C++
OpenCv. Получить зеркальное отображение изображения, используя функции: CvScalar, CvGet2D, CvSet2D C++

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Ответ Создать тему
Опции темы

Текущее время: 08:17. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru