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에서 호출되는 원시 이미지이므로 문제가 발생합니다. 따라서 밝기 슬라이더를 이동 한 다음 대비 슬라이더를 움직이면 슬라이더로 인해 밝기 변경이 유지되지 않습니다. 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++을 처음 접했습니다!