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

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

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Прямая линия задана своими коэффициентами. Определить угол наклона этой прямой к оси OX http://www.cyberforum.ru/cpp-beginners/thread965540.html
Прямая линия задана своими коэффициентами. Определить угол наклона этой прямой к оси OX помоги пожалуйста решить задачу в си++
C++ запутался в приведение типов Код: #include <iostream> using namespace std; template <typename T> T Comparison (T * arr); int main() { http://www.cyberforum.ru/cpp-beginners/thread965535.html
Вывод графики в OpenGL C++
Возможно ли в OpenGL выводить картинку или даже фотографию, в форматах jpeg, png, больших размеров и в хорошем качестве?, сильно ли это будет зависеть на скорость???
Составить функцию и вычислить ее значение C++
Как пишется такие задачи в C++? ((n*1)-(2*n*2))/(1+(2*n*1))?
C++ Перегрузка операций http://www.cyberforum.ru/cpp-beginners/thread965475.html
C++ ругается когда я пытаюсь сделать след-ю перегрузку операций. У меня трехмерный массив matrix и в цикле мне нужно использовать не числовой индекс а символьный, но прога не пашет при matrix например. Подскажите возможно такое реализовать в С++? int operator(char sstr) { if(sstr == 'A') return 0; if(sstr == 'B') return 1;
C++ Задать число и вывести все нечетные числа до него Здравствуйте! Помогите пожалуйста написать программу. Требуется задать число и вывести все нечетные числа до него. Я не совсем понял какие операции нужно использовать. Желательно с пояснениями) подробнее

Показать сообщение отдельно
broDiaga_cpp
22 / 12 / 1
Регистрация: 20.02.2010
Сообщений: 180

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

30.09.2013, 14:07. Просмотров 1398. Ответов 0
Метки (Все метки)

Хочу получить доступ к пикселям одноканального изображения. Делаю так:
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]
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru