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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 13, средняя оценка - 4.69
jacknk88
0 / 0 / 0
Регистрация: 23.07.2013
Сообщений: 28
#1

матрица яркости - C++

04.09.2013, 10:32. Просмотров 2256. Ответов 9
Метки нет (Все метки)

с помощью каких функций, методов можно получить значение яркости пикселя или может лучше матрицу яркости пикселей изображения на C++ для черно-белого и цветного изображения?

из цветного можно преобразовать RGB

Y = 0.299*R+0.587*G+0.114*B

но как получить параметры RGB для пикселя не знаю...

getpixel вроде долго работает...его не рекомендуют использовать....может с помощью OpenCV или других библиотек можно получить....
поиски в гугле окончательно запутали меня..помогите, плиз


значения яркости нужны для выполнения различных расчетов, например,

F = I(i+1) - I(i)

I(i) - яркость в i-го пикселя...

а потом уже работать с производными...

читал про оператор Соболя, но он возвращает градиент...этот градиент мне нужно рассчитать немного по другим алгоритмам....поэтому мне и нужно само значение яркости каждого пикселя
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
04.09.2013, 10:32
Здравствуйте! Я подобрал для вас темы с ответами на вопрос матрица яркости (C++):

дана квадратичная матрица z[n][n]. составить программу, которая если матрица симметричная(транспонированная матрица равна исходной), сделает ее не сим - C++
помогите пожалуйста. условие: дана квадратичная матрица z. составить программу, которая если матрица симметричная(транспонированная...

Разбить изображение по яркости - C++
Я пытаюсь разбить чёрно-белое изображение на небольшие участки схожие по яркости. Я выбираю параметр p и 2 точки(в начале алгоритма, это...

Дана матрица целых чисел, из n строк и n столбцов (n < = 100).Определить является ли матрица нулевой (состоит из одних нулей) - C++
#include &lt;iostream.h&gt; #include &lt;iomanip.h&gt; #include&lt;conio.h&gt; void main() { int mas; int N; int max_element; int...

Дана матрица целых чисел, из n строк и n столбцов (n < = 100).Определить является ли матрица нулевой (состоит из одних нулей) - C++
#include &lt;iostream.h&gt; #include &lt;iomanip.h&gt; #include &lt;stdlib.h&gt; int main(int argc, char* argv) { srand(time(NULL)); int mas; ...

Даны квадратная матрица A порядка n и вектор с n элементами. Получить вектор: (A=E)b, где E единичная матрица порядка n - C++
Даны квадратная матрица A порядка n и вектор с n элементами. Получить вектор: (A=E)b, где E-единичная матрица порядка n. Помогите...

Определить базовый класс "Матрица" и класс-потомок "Треугольная матрица" - C++
Нужно определить класс &quot;матрица&quot; с возможностью динамического выделения и освобождения памяти, наполнения матрицы, сохранения и чтения из...

9
Raali
623 / 327 / 34
Регистрация: 06.07.2013
Сообщений: 1,062
Завершенные тесты: 1
04.09.2013, 11:53 #2
смотря какое изображение, где оно находится, на экране или в файле
0
jacknk88
0 / 0 / 0
Регистрация: 23.07.2013
Сообщений: 28
04.09.2013, 12:31  [ТС] #3
Цитата Сообщение от Raali Посмотреть сообщение
смотря какое изображение, где оно находится, на экране или в файле
в файле
0
Nekto
342 / 287 / 10
Регистрация: 23.03.2012
Сообщений: 838
04.09.2013, 12:32 #4
Цитата Сообщение от jacknk88 Посмотреть сообщение
в файле
А как в файле хранится цвет?
0
Raali
623 / 327 / 34
Регистрация: 06.07.2013
Сообщений: 1,062
Завершенные тесты: 1
04.09.2013, 12:40 #5
Цитата Сообщение от jacknk88 Посмотреть сообщение
в файле
что за файл, какое расширение?
0
jacknk88
0 / 0 / 0
Регистрация: 23.07.2013
Сообщений: 28
04.09.2013, 12:47  [ТС] #6
Цитата Сообщение от Raali Посмотреть сообщение
что за файл, какое расширение?
jpeg

Добавлено через 4 минуты
а что содержит mat
C++
1
cv::Mat mat = cv::imread(filename, CV_LOAD_IMAGE_GRAYSCALE);
или так
C++
1
Mat img = imread("filename.jpg",CV_LOAD_IMAGE_COLOR);
а потом

C++
1
mat.at<unsigned char>(h, w);
к отдельной строчке через

C++
1
mat.ptr(h);
а к массиву данных через

C++
1
mat.data
0
Raali
623 / 327 / 34
Регистрация: 06.07.2013
Сообщений: 1,062
Завершенные тесты: 1
04.09.2013, 13:03 #7
Цитата Сообщение от jacknk88 Посмотреть сообщение
mat.at<unsigned char>(h, w);
а если вывести это значение что показывает?
хотя странно что unsigned char, я ожидал что в матрице будут unsigned int
0
Nekto
342 / 287 / 10
Регистрация: 23.03.2012
Сообщений: 838
04.09.2013, 13:24 #8
http://opencv.willowgarage.com/docum....html#iplimage Если я правильно понял, в imageData надо лезть.
0
jacknk88
0 / 0 / 0
Регистрация: 23.07.2013
Сообщений: 28
09.09.2013, 13:12  [ТС] #9
может кому еще понадобиться, так что напишу что узнал

Цитата Сообщение от jacknk88 Посмотреть сообщение
а что содержит mat
C++
1
cv::Mat mat = cv::imread(filename, CV_LOAD_IMAGE_GRAYSCALE);
содержит значения яркости (для GRAYSCALE (градации серого) - черно-белого изображения) или (вот это я не проверял) каждый элемент будет содержать значения RGB, точнее BGR (для цветного изображения CV_LOAD_IMAGE_COLOR)....хотя второй параметр, думаю, можно указать также как и при вызове функции cvLoadImage


Для обращения к элементам матрицы, а именно получения значения яркости в диапазоне от 0 до 255 нужно использовать тип unsigned char...и написать что-то вроде этого

C++
1
int I = mat.at<unsigned char>(h, w);
или вернее
C++
1
unsigned char I = mat.at<unsigned char>(h, w);
где I - значение яркости пикселя; h - номер строки пикселя; w - номер столбца пикселя;

вроде можно и к отдельной строчке обратиться через

C++
1
mat.ptr(h);
а к массиву данных через

C++
1
mat.data
всю информацию нашел на форуме

спасибо всем!
0
jacknk88
0 / 0 / 0
Регистрация: 23.07.2013
Сообщений: 28
10.09.2013, 13:41  [ТС] #10
вот еще подробное описание способов обращения к пикселям изображения

PS: только метод, который я использовал там почем-то нету
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
10.09.2013, 13:41
Привет! Вот еще темы с ответами:

Матрица яркости в Matlab - Matlab
Ребята, помогите пожалуйста, кому не сложно) Нужно считать изображение, после чего считать в двумерный массив значение яркости каждого...

Автоизменение яркости - Windows 7
Добрый день. Не знал куда написать по этому вопросу. Меня беспокоит автоизменение яркости после того как я перешёл на интегрированную...

Изменения яркости - Matlab
Извините что беспокою, но может быть кто-то поможет или подскажет с заданием: Изменения яркости логарифмического типа y=c(1+log(x)), где...

Регулировка яркости не работает. Wn 8.1 - Windows 8, 8.1
Ноутбук Emachines G730G с видеокартой ATI Mobility Radeon HD 5650. Установил Windows 8.1, поставил все драйвера, включая драйвер...


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

Или воспользуйтесь поиском по форуму:
10
Yandex
Объявления
10.09.2013, 13:41
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru