-
Fototrend

Új hozzászólás Aktív témák
-
Erwinke
aktív tag
válasz
Erwinke
#10958
üzenetére
Elnézést, rosszat küldtem ...
// színcsatornák korrigálása
while ((U_avg > 0.1) && (V_avg > 0.1)) {
if(U_avg > V_avg){
//egyik verzió a korrigálásra
for (int i = 0; i <image.rows; i++){
for (int j = 0; j < image.cols; j++){
if(image.at<Vec3b>(i,j)[0]+1 <= 255){
image.at<Vec3b>(i,j)[0] = image.at<Vec3b>(i,j)[0]+1;
} // az eredeti képen lévő színcsatornákat korrigáljuk
}
}
}else{
for (int i = 0; i <image.rows; i++){
for (int j = 0; j < image.cols; j++){
if (image.at<Vec3b>(i,j)[2]+1 <= 255){
image.at<Vec3b>(i,j)[2] = image.at<Vec3b>(i,j)[2]+1;
}
}
}
}
//másik verzió a korrigálásra
/*
if(U_avg > V_avg){
for (int i = 0; i <modded.rows; i++){
for (int j = 0; j < modded.cols; j++){
modded.at<Vec3b>(i,j)[0] = modded.at<Vec3b>(i,j)[1]+1;
// az YUV színterű képet korrigáljuk (nem működik)
}
}
}else{
for (int i = 0; i <modded.rows; i++){
for (int j = 0; j < modded.cols; j++){
modded.at<Vec3b>(i,j)[2] = modded.at<Vec3b>(i,j)[1]-1;
}
}
}
}*/
/*_______________________________________________________________________________________________________*/
/*
* egyik verzió a szürke pixelek újraszámolására (ugyan azokat a pixeleket vesszük figyelembe)
for (int k = 0; k < counter; k++){
// a rekord tömbből keressük ki a pixeleket
//double b = image.at<Vec3b>(arr[counter].x,arr[counter].y)[0];
//double g = image.at<Vec3b>(arr[counter].x,arr[counter].y)[1];
//double r = image.at<Vec3b>(arr[counter].x,arr[counter].y)[2];
//double y = ((0.299*r)+(0.587*g)+(0.114*g));
double u = (modded.at<Vec3b>(arr[counter].x,arr[counter].y)[1])-128;
double v = (modded.at<Vec3b>(arr[counter].x,arr[counter].y)[2])-128;
U_avg += abs(u);
V_avg += abs(v);
}*/
// másik verzió a szürke pixelek újraszámolására (nem feltétlenül ugyan azokat a pixeleket vesszük figyelembe)
// újra keressük a szürke pixeleket
cvtColor(image, modded, CV_BGR2YUV);
counter = 0;
for (int i = rows*2; i < rows*3; i++) {
for (int j = cols*2; j < cols*3; j++) {
double y = modded.at<Vec3b>(i,j)[0];
double u = (modded.at<Vec3b>(i,j)[1])-128;
double v = (modded.at<Vec3b>(i,j)[2])-128;
double tmp = (abs(u)+abs(v))/y;
double aa = 0.2;
if (tmp < aa){
arr[counter] = {i,j};
U_avg += abs(u);
V_avg += abs(v);
counter++;
}
}
}
U_avg = U_avg/counter;
V_avg = V_avg/counter;
// önellenőrzés, U és V csatornák átlaga
cout << (int)U_avg << ", " << (int)V_avg << endl;
}
cvtColor(modded, modded, CV_YUV2BGR);// visszakonvertálás
imshow("image",image);
namedWindow("image",CV_WINDOW_FREERATIO);
imshow("modded", modded);
namedWindow("modded", CV_WINDOW_FREERATIO);
/*
cout << to_string((int)Y) << "\n";
cout << to_string((int)U) << "\n";
cout << to_string((int)V) << "\n";*/
/*
vector<Mat> channels;
vector<Mat> separatedChannels = showChannels(channels);
namedWindow("Blue", CV_WINDOW_FREERATIO);
imshow("Blue", separatedChannels[0]);
namedWindow("Green", CV_WINDOW_FREERATIO);
imshow("Green", separatedChannels[1]);
namedWindow("Red", CV_WINDOW_FREERATIO);
imshow("Red", separatedChannels[2]);
*/
waitKey(0); -
Erwinke
aktív tag
Szép napot.
Iteral White Balancot kéne leprogramoznunk órára. Megvan a program csak rosszul konvertálja át a képet és nem tudunk rájönni, hogy miért. Nem tudom ez a szakterületük-e, de egy próbát megér. Köszönöm a segítségüket./********************************************************************************
** Form generated from reading UI file 'mainwindow.ui'
**
** Created by: Qt User Interface Compiler version 5.8.0
**
** WARNING! All changes made in this file will be lost when recompiling UI file!
********************************************************************************/
#ifndef UI_MAINWINDOW_H
#define UI_MAINWINDOW_H
#include <QtCore/QVariant>
#include <QtWidgets/QAction>
#include <QtWidgets/QApplication>
#include <QtWidgets/QButtonGroup>
#include <QtWidgets/QComboBox>
#include <QtWidgets/QHeaderView>
#include <QtWidgets/QMainWindow>
#include <QtWidgets/QPushButton>
#include <QtWidgets/QWidget>
QT_BEGIN_NAMESPACE
class Ui_MainWindow
{
public:
QWidget *centralWidget;
QComboBox *comboBox;
QPushButton *pushButton;
QPushButton *pushButton_2;
void setupUi(QMainWindow *MainWindow)
{
if (MainWindow->objectName().isEmpty())
MainWindow->setObjectName(QStringLiteral("MainWindow"));
MainWindow->resize(394, 252);
centralWidget = new QWidget(MainWindow);
centralWidget->setObjectName(QStringLiteral("centralWidget"));
comboBox = new QComboBox(centralWidget);
comboBox->setObjectName(QStringLiteral("comboBox"));
comboBox->setGeometry(QRect(30, 60, 181, 26));
pushButton = new QPushButton(centralWidget);
pushButton->setObjectName(QStringLiteral("pushButton"));
pushButton->setGeometry(QRect(280, 60, 80, 26));
pushButton_2 = new QPushButton(centralWidget);
pushButton_2->setObjectName(QStringLiteral("pushButton_2"));
pushButton_2->setGeometry(QRect(280, 210, 80, 26));
MainWindow->setCentralWidget(centralWidget);
retranslateUi(MainWindow);
QMetaObject::connectSlotsByName(MainWindow);
} // setupUi
void retranslateUi(QMainWindow *MainWindow)
{
MainWindow->setWindowTitle(QApplication::translate("MainWindow", "MainWindow", Q_NULLPTR));
comboBox->clear();
comboBox->insertItems(0, QStringList()
<< QApplication::translate("MainWindow", "White patch", Q_NULLPTR)
<< QApplication::translate("MainWindow", "Gray world", Q_NULLPTR)
<< QApplication::translate("MainWindow", "Iterative white balance", Q_NULLPTR)
);
pushButton->setText(QApplication::translate("MainWindow", "Tall\303\263z\303\241s", Q_NULLPTR));
pushButton_2->setText(QApplication::translate("MainWindow", "Ind\303\255t\303\241s", Q_NULLPTR));
} // retranslateUi
};
namespace Ui {
class MainWindow: public Ui_MainWindow {};
} // namespace Ui
QT_END_NAMESPACE
#endif // UI_MAINWINDOW_H
Új hozzászólás Aktív témák
● olvasd el a téma összefoglalót!
- Samsung Galaxy S24 - nos, Exynos
- Magyarországra érkezett a Mijia, a Xiaomi okos háztartási nagygépeinek márkája
- Jolla és SailfishOS tapasztalatcsere
- Audi, Cupra, Seat, Skoda, Volkswagen topik
- Tőzsde és gazdaság
- MWC 2026: Leica telefont gyártott a Xiaomi
- Luck Dragon: Asszociációs játék. :)
- Kerékpárosok, bringások ide!
- Filmvilág
- NVIDIA GeForce RTX 5070 / 5070 Ti (GB205 / 203)
- További aktív témák...
- BESZÁMÍTÁS! ASRock A520M R5 5500 16GB DDR4 512GB SSD RTX 2060 6GB CM Masterbox MB311L ARGB 500W
- Apple iPhone 13 Pro 128GB, Kártyafüggetlen, 1 Év Garanciával
- BESZÁMÍTÁS! GIGABYTE B360N i5 9600KF 16GB DDR4 512GB SSD GTX 1660 Super 6GB Zalman T3 Plus 400W
- BESZÁMÍTÁS! ASRock B450M R5 3600 8GB DDR4 120GB SSD 1TB HDD GTX 1650 Super 4GB Zalman T3 Plus 400W
- Lexar NM790 8TB M.2 NVME PCI-E 4.0 x4 - Új, 1 év garancia - 7000-6200 MBs - Eladó!
- SanDisk Extreme Portable 8TB (SDSSDE61-8T00-G25) (utolsó darab)
- Telefon felvásárlás!! iPhone 16/iPhone 16 Plus/iPhone 16 Pro/iPhone 16 Pro Max
- LENOVO ThinkPad T14s Gen 2i touchscreen - i7-1185G7, 16GB RAM, SSD, jó akku, számla, 6 hó gar
- AKCIÓS ! MacBook Pro 16" M1 Pro 32GB RAM 1TB SSD! 1 év garancia!
- Xiaomi Redmi 14C / 4/128GB / Kártyafüggetlen / 12Hó Garancia
Állásajánlatok
Cég: Laptopműhely Bt.
Város: Budapest

