Я хотел бы весить значения яркости.Обработка изображений: яркость взвешенная
Пример: У меня есть вектор значений яркости:
vector <int> lum {50,100,150,200,250);
У меня есть вектор коэффициентов:
vector <float> coef {5.1 , 2.55 , 1.7 , 1.275, 1.02 }
я создаю пустой файл:
Mat1 m(15):
Так , мое первое значение яркости равно 50 (lum [0] = 50), и я хочу, чтобы оно было применено к 5.1 (coef [0] = 5.1) f первый пиксель моей матрицы. Для этого мне нужно вес 6-го пикселя с первым и вторым значением яркости. В моем случае яркость моего 6-го пикселя будет равна 95, потому что (0,1 * 50) + (0,9 * 100) = 95
В настоящий момент для второго коэффициента (coef [1] = 2,55) у меня есть использовал 0,9 на 2,55 для предыдущего расчета. Он остается 1,65 на этом коэффициенте, поэтому 7-й пиксель будет иметь 100 яркости, а восьмой будет иметь (0,65 * 100) + (0,35 * 150) = 117,5.
И так далее ...
Actualy У меня есть это:
//Blibliothèque Opencv
#include "opencv2/core/core.hpp"
#include "opencv2/imgproc/imgproc.hpp"
#include "opencv2/imgcodecs.hpp"
#include "opencv2/highgui/highgui.hpp"
// cpp include
#include <iostream>
#include <cmath>
#include <math.h>
#include <string.h>
#include <vector>
#include <opencv2/opencv.hpp>
#define MPI 3.14159265358979323846264338327950288419716939937510
#define RAD2DEG (180./MPI)
using namespace cv;
using namespace std;
vector <int> lum{ 50, 100, 150, 200, 250 };
vector <float> coef (5,0);
vector <int> newv(15, 0);
float pixelRef = 255, angle = 0, coeff = 0;
int main()
{
for (int n = 0; n < lum.size(); ++n)
{
//get angle
angle = ((acos(lum[n]/pixelRef)));
cout << "angle :" << angle*RAD2DEG << endl;
// get coefficient
coef [n] = (1/(cos(angle)));
cout << "coeff :" << coef [n] << endl;
// try to weighted my pixels
newv[n] = (coef*lum[n]) + ((1 - coeff)*lum[n + 1]);
}
return 0;
}
Вы пробовали что-нибудь до сих пор? Почему изображение имеет ровно 15 элементов? – Miki
Не совсем, у меня есть код, но он не работает. 15 - просто пример, возможно, мне следовало бы использовать вектор. –
Пожалуйста, введите свой код в вопрос. Хотя мы здесь, чтобы помочь, приятно видеть, что вы на самом деле пытались что-то вместо того, чтобы просто требовать от других писать код для вас. – Miki