Как получить разрешение экрана компьютера на OpenCV? Мне нужно показать два изображения бок о бок, используя всю ширину экрана, для OpenCV требуется точный размер окна, который я хочу создать.
Получение размера экрана на OpenCV
Ответ 1
Вы можете использовать это решение кроссплатформенное решение с или без OpenCV:
#if WIN32
#include <windows.h>
#else
#include <X11/Xlib.h>
#endif
//...
void getScreenResolution(int &width, int &height) {
#if WIN32
width = (int) GetSystemMetrics(SM_CXSCREEN);
height = (int) GetSystemMetrics(SM_CYSCREEN);
#else
Display* disp = XOpenDisplay(NULL);
Screen* scrn = DefaultScreenOfDisplay(disp);
width = scrn->width;
height = scrn->height;
#endif
}
int main() {
int width, height;
getScreenResolution(width, height);
printf("Screen resolution: %dx%d\n", width, height);
}
Ответ 2
В Linux попробуйте это
#include <stdio.h>
int main()
{
char *command="xrandr | grep '*'";
FILE *fpipe = (FILE*)popen(command,"r");
char line[256];
while ( fgets( line, sizeof(line), fpipe))
{
printf("%s", line);
}
pclose(fpipe);
return 0;
}
В Windows
http://cppkid.wordpress.com/2009/01/07/how-to-get-the-screen-resolution-in-pixels/
Ответ 3
Вы не можете работать с ОС - это зависит от вашей операционной системы
Ответ 4
Это не ответ о том, как получить ширину и высоту экрана, но он позволит вам решить проблему отображения двух изображений с использованием полноэкранного размера.
1) Создайте окно, подобное этому:
namedWindow("hello", WINDOW_NORMAL);
Это позволит вам установить размер окна самостоятельно, вы можете легко установить его, и он займет весь экран. Он также запомнит настройки при следующем запуске программы. Вы также можете установить флаги, чтобы сохранить соотношение сторон, если хотите.
2) Если вам нужно получить точное количество пикселей, вы можете получить размер окна, используя это:
getWindowImageRect("hello");
Таким образом, вы можете легко объединить два изображения в одно и отобразить результат на экране. Я делаю это сам.
Ответ 5
В новой версии он также работает, как показано ниже: "D
printf("%f",cap.get(CV_CAP_PROP_FRAME_HEIGHT));
для настройки разрешения видео.
<capture_handle>.set(property_in_caps, value_in_double);
ex, cap.set(CV_CAP_PROP_FRAME_HEIGHT, 720);