allow arbitary calcurve points, change calcurve format a bit

This commit is contained in:
2021-06-18 16:51:34 +02:00
parent 544455bea8
commit bf4cb88d28

View File

@ -275,10 +275,19 @@ int perfromOperation(int operation, char** fileNames, const Config& config)
} }
else if(operation == CREATE_CURVE) else if(operation == CREATE_CURVE)
{ {
cv::Mat curve = cv::Mat::zeros(2, 10, CV_32FC1); std::cout<<"how many coordinate pares are required?\n> ";
int num = 0;
std::cin>>num;
if(std::cin.fail())
{
std::cin.clear();
std::cout<<"invalid number";
return -1;
}
cv::Mat curve = cv::Mat::zeros(2, num, CV_32FC1);
float* keys = curve.ptr<float>(0); float* keys = curve.ptr<float>(0);
float* values = curve.ptr<float>(1); float* values = curve.ptr<float>(1);
std::cout<<"Please type 10 coordinate pairs\n"; std::cout<<"Please type "<<num<<" coordinate pairs\n";
for(int i = 0; i < curve.cols; ++i) for(int i = 0; i < curve.cols; ++i)
{ {
std::cout<<i<<"> "; std::cout<<i<<"> ";
@ -309,7 +318,7 @@ int perfromOperation(int operation, char** fileNames, const Config& config)
std::cout<<keys[i]<<' '<<values[i]<<'\n'; std::cout<<keys[i]<<' '<<values[i]<<'\n';
cv::FileStorage fs(!config.output.empty() ? config.output : "curve.mat", cv::FileStorage::WRITE); cv::FileStorage fs(!config.output.empty() ? config.output : "curve.mat", cv::FileStorage::WRITE);
fs<<"curve"<<curve; fs<<"cal"<<curve;
fs.release(); fs.release();
std::cout<<"Curve saved to "<<(!config.output.empty() ? config.output : "curve.mat")<<'\n'; std::cout<<"Curve saved to "<<(!config.output.empty() ? config.output : "curve.mat")<<'\n';