我需要在cv :: Mat中加载图像然后调整大小,保持宽高比小于屏幕尺寸(在我的情况下为1920x1080)。
cv::Mat image = cv::imread(filePath, CV_LOAD_IMAGE_UNCHANGED); //read image file
cv::resize(image, image, cvSize(width, height)); //calculate width height separately
调整大小后,我需要做进一步的操作。
问题是我只能使用500 MB的内存,因此我无法加载具有非常大分辨率的图像(大约10k x 10k)
因此,虽然我需要最终将这些图像调整为较小的尺寸(小于屏幕尺寸),然后再对其进行操作,但我无法处理非常高分辨率的图像。
是否可以选择在加载(读取文件)时缩放图像,以便cv :: Mat根据图像的缩放版本使用内存而不是图像的原始大小?
或者,是否有其他方法可以在不使用那么多内存的情况下加载非常高分辨率的图像。
感谢您的帮助。