Другие языки программирования и технологии
что значит реализовать класс фильтр (диапазоны R,G,B на входе и выходе)? с++
и перегрузку внешней функции? что это вообще за фильтр
По моему это не весь вопрос как минимум, не хватает данных. Но скорее всего имеется ввиду обычный фильтр как в фотошопе каком-нибудь, аля сепия, негатив. Будет принимать карту пикселей RGB, что-то с ней делать и отдавать снова карту, возможно не карту а попиксельно, зависит от типа фильтра и постановки задачи.
Амиршо Хакимов
ну вот в самой задачи требуется реализовать фильтр и RGB на входе и выходе и Реализовать перегрузку операторов сложения, вычитания, умножения в качестве метода и внешней функции. вот такая задача, больше ничего не дано. вот как реализовать сложение, вычитание - это как-то с цветами связано?
Перегрузка:
Это у тебя есть класс или контейнер, который содержит изображение. По сути здесь изображение - двумерный массив или контейнер вложенный в контейнер, каждый элемент коего в себе содержит 3 значения - интенсивность цвета по каналу R, по G, по B. Это (элемент - пиксел) можно записать так tuple < short, short, short > pix =
make_tuple(0, 255, 10);
И эти кортежи помещать в двумерный массив или контейнер. В свою очередь контейнер должен являться полем класса, который нужно написать - это нужно для того, чтобы сделать перегрузку операторов.
В свою очередь, фильтр тоже нужно представить как двумерный массив туплов в том же классе, но продекларированный под другим экземпляром.
Теперь можно описывать перегрузку операторов +, -и т. д.
#include < iostream >
#include < windows.h >
#include < tuple >
#include < vector >
using namespace std;
class image
{
public:
vector < vector < tuple < short, short, short > > > img;
//Тут пишем методы по обработке изображения
//Ниже описываем перегрузку оператора +
image operator + (image x)
{
//Что нужно делать с экземплярами this и x
}
};
int main()
{
SetConsoleCP(1251);
SetConsoleOutputCP(1251);
system("color 0A");
image pict; //Сама картинка
//Завполнение картинки (сделай сам)
image svert; //Матрица свёртки - фильтр
//Описать фильтр (сделай сам)
//Ниже идёт использование перегрузки оператора +
//Это и есть работа фильтра. Результат уходит в экземпляр rez
image rez = pict + svert;
system("pause");
return 0;
}
Это у тебя есть класс или контейнер, который содержит изображение. По сути здесь изображение - двумерный массив или контейнер вложенный в контейнер, каждый элемент коего в себе содержит 3 значения - интенсивность цвета по каналу R, по G, по B. Это (элемент - пиксел) можно записать так tuple < short, short, short > pix =
make_tuple(0, 255, 10);
И эти кортежи помещать в двумерный массив или контейнер. В свою очередь контейнер должен являться полем класса, который нужно написать - это нужно для того, чтобы сделать перегрузку операторов.
В свою очередь, фильтр тоже нужно представить как двумерный массив туплов в том же классе, но продекларированный под другим экземпляром.
Теперь можно описывать перегрузку операторов +, -и т. д.
#include < iostream >
#include < windows.h >
#include < tuple >
#include < vector >
using namespace std;
class image
{
public:
vector < vector < tuple < short, short, short > > > img;
//Тут пишем методы по обработке изображения
//Ниже описываем перегрузку оператора +
image operator + (image x)
{
//Что нужно делать с экземплярами this и x
}
};
int main()
{
SetConsoleCP(1251);
SetConsoleOutputCP(1251);
system("color 0A");
image pict; //Сама картинка
//Завполнение картинки (сделай сам)
image svert; //Матрица свёртки - фильтр
//Описать фильтр (сделай сам)
//Ниже идёт использование перегрузки оператора +
//Это и есть работа фильтра. Результат уходит в экземпляр rez
image rez = pict + svert;
system("pause");
return 0;
}
Похожие вопросы
- С++.Составить программу для определения таблицы значений функции у в произвольном диапазоне [a, b
- Калибровка монитора RGB. Должны ли отличаться зрительно в Corel DRAW между собой цвета R-0 G-0 B-0 и C-0 M-0 Y-0 K-100?
- срочно помогите написать программу на ассемблере вычисляющую R. R=x2+y2, где x=a+b-c, y=b*c-a. a,b,c вводятся с клавы
- Может ли кирпич, имеющий форму прямоугольного параллепипеда с ребрами a,b,c, пройти через круглое отверстие радиуса R?
- Дано функцию f(x,y). Вивести на екран функцію g(x)=∫_a^b▒〖f(x,y)〗 dy. С++
- Разработать класс описывающий множество точек на плоскости, реализовать метод который возвращает наименьшее расстояние
- Сложное уравнение (ax+b)/(cx+d)=0 на Pascal
- c++.Неправильно выводятся индексы l и r,соответствующие индексам массива. Как это исправить?
- Необходимо составить прграму табулирования двух фукций s и y в заданном диапазоне изменения аргумента x
- помогите составить таблицы истиности -А -> (B + C); (A B) * C; -A + -B + C; - (A + B) * C ; A * B _+ C; A B