Updated based on runtime-related errors. Was crashing under normal use.

This commit is contained in:
mmcwilliams 2024-08-25 09:28:24 -04:00
parent d7c06543f3
commit d1e72528c7
1 changed files with 22 additions and 20 deletions

View File

@ -5,32 +5,34 @@ Image::Image () {
} }
Mat Image::getBlank () { Mat Image::getBlank () {
if (blank.empty()) { if (blank.empty()) {
blank = Mat::zeros(height, width, CV_8UC3); blank = Mat::zeros(Size(width, height), CV_8UC3);
} }
return blank.clone(); return blank.clone();
} }
Mat Image::loadImage (string& image_path, uint64_t& x, uint64_t& y, uint64_t& w, uint64_t& h) { Mat Image::loadImage (string& image_path, uint64_t& x, uint64_t& y, uint64_t& w, uint64_t& h) {
string located_path = samples::findFile(image_path); string located_path = samples::findFile(image_path);
Mat loaded = imread(located_path, IMREAD_COLOR); Mat loaded = imread(located_path, IMREAD_COLOR);
Mat resized; Mat resized;
Mat image = getBlank(); Mat image = getBlank();
if (loaded.empty()) { if (loaded.empty()) {
cerr << "{ \"error\" : \"" << image_path << " empty\" }" << endl; cerr << "{ \"error\" : \"" << image_path << " empty\" }" << endl;
} else { } else {
cout << "{ \"loaded\" : \"" << image_path << "\", "; resize(loaded, resized, Size(w, h));
cout << "\"original\" : { \"w\" : " << loaded.cols << ", \"h\" : " << loaded.rows << " }, ";
cout << "\"resized\" : { \"w\" : " << w << ", \"h\" : " << h << " } }" << endl; cout << "{ \"loaded\" : \"" << image_path << "\", ";
resize(loaded, resized, Size(h, w)); cout << "\"original\" : { \"w\" : " << loaded.cols << ", \"h\" : " << loaded.rows << " }, ";
resized.copyTo(image(Rect(x, y, resized.cols, resized.rows))); cout << "\"resized\" : { \"w\" : " << resized.cols << ", \"h\" : " << resized.rows << " } }" << endl;
flip(image, image, 0);
resized.copyTo(image(Rect(x, y, resized.cols, resized.rows)));
flip(image, image, 0);
#if (CV_VERSION_MAJOR >= 4) #if (CV_VERSION_MAJOR >= 4)
cvtColor(image, image, cv::COLOR_BGR2RGB); cvtColor(image, image, cv::COLOR_BGR2RGB);
#else #else
cvtColor(image, image, CV_BGR2RGB); cvtColor(image, image, CV_BGR2RGB);
#endif #endif
} }
return image; return image;