- Argos: Adjátok vissza a netet! - szeretnék elaludni!
- Luck Dragon: Asszociációs játék. :)
- sziku69: Szólánc.
- droidic: Időutazás floppyval: A 486-os visszavág PCem-men
- D1Rect: Nagy "hülyétkapokazapróktól" topik
- sziku69: Fűzzük össze a szavakat :)
- gban: Ingyen kellene, de tegnapra
- Autódiagnosztika: a gyakorlatban
- laskr99: Processzor és videokártya szilícium mag fotók újratöltve!
- LordAthis: Ismét egy "Idióta" A.I. Projekt, hogy meglovagolja az aktuális trendeket...
Hirdetés
-
LOGOUT
Ú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!
- Autós topik
- Milyen asztali médialejátszót?
- Hat év támogatást csomagolt fém házba a OnePlus Nord 4
- Milyen egeret válasszak?
- AMD Ryzen 9 / 7 / 5 9***(X) "Zen 5" (AM5)
- Hobby elektronika
- A fociról könnyedén, egy baráti társaságban
- Melyik tápegységet vegyem?
- Telekom otthoni szolgáltatások (TV, internet, telefon)
- Vezetékes FEJhallgatók
- További aktív témák...
- GYÖNYÖRŰ iPhone 13 mini 256GB Midnight -1 ÉV GARANCIA - Kártyafüggetlen, MS3043, 94% Akkumulátor
- LG 32GS94UX - 32" OLED / UHD 4K / 240Hz - 480Hz & 0.03ms / 1300 Nits / NVIDIA G-Sync / AMD FreeSync
- Azonnali készpénzes Sony Playstation 4 Slim / PS4 Pro felvásárlás személyesen/csomagküldéssel
- Microsoft Windows, Office & Vírusirtók: Akciók, Azonnali Szállítás, Garantált Minőség, Garancia!
- BESZÁMÍTÁS! ASUS TUF A620M R5 7600X 32GB DDR5 1TB SSD RX 6700 XT 12GB ZALMAN I3 NEO A-Data 750W
Állásajánlatok
Cég: FOTC
Város: Budapest