OpenCV/Qtを使用して簡単な画像処理アプリケーションを作成しています。作成したコード(https://github.com/krslynx/ImageProcessingApplication)を最適化する方法を探しています。現在、各タイムスライダは、例えば、画像を変更し、それぞれのメソッドが呼び出されるアプリケーションに移動される。updateImage方法は、画像を格納するQLabel(ui->pixmap
)を更新OpenCV/C++の最適化ヘルプ
/** ActionEvent for the brightness slider moving */
void MainWindow::on_brightnessSlider_sliderMoved() {
//setBrightness is the method called
updateImage(ui->pixmap, setBrightness(this->image, ui->brightnessSlider->value());
}
。これは、cv::Mat image/this->image
が各ActionEventで呼び出される生のイメージであるため、Brightness Sliderが移動された後、Contrast Sliderが移動された場合、スライダがthis->image
ではなくQLabel pixmapを設定します。このコードは、私は必要な正確な視覚効果を与えるが、それは各アクションのイベントは、その中に上記のコードのすべてを持っている必要があることを意味(と私が必要
/** ActionEvent for the brightness slider moving */
void MainWindow::on_brightnessSlider_sliderMoved() {
cv::Mat result = this->image;
result = setBrightness(result, ui->brightnessSlider->value());
result = setContrast(result, ui->contrastSlider->value());
result = setSharpness(result, ui->sharpnessSlider->value());
result = setZoom(result, ui->zoomSlider->value());
updateImage(ui->pixmap, result);
}
:私は、次のコードを使用してこの問題を「解決します」私が追加するそれぞれの新機能のコードを追加し続ける)、私は既に処理したことを再処理しています。すべてのスライダを移動させた大きな画像を処理する場合、処理に1.1秒以上かかることがあります。
代わりにグローバルイメージthis->image
を参照して変更しようとしましたが、変更されたイメージの別のグローバルを作成しましたが、明るさ/コントラスト/シャープネス/ズームスライダを上下に動かすと問題が発生しましたはるかに激しく
どのポインタも大変ありがとうございます。私はC++にかなり新しいです!