Adding option for camera parameters with new interface.
This commit is contained in:
parent
bbe58b50a6
commit
0ffc272ff4
2 changed files with 38 additions and 12 deletions
|
@ -133,7 +133,6 @@ namespace OpenFaceOffline
|
|||
|
||||
// Camera calibration parameters
|
||||
public float fx = -1, fy = -1, cx = -1, cy = -1;
|
||||
bool estimate_camera_parameters = true;
|
||||
|
||||
public MainWindow()
|
||||
{
|
||||
|
@ -161,7 +160,7 @@ namespace OpenFaceOffline
|
|||
{
|
||||
for (int i = 0; i < filenames.Count; ++i)
|
||||
{
|
||||
SequenceReader reader = new SequenceReader(filenames[i], false);
|
||||
SequenceReader reader = new SequenceReader(filenames[i], false, fx, fy, cx, cy);
|
||||
ProcessSequence(reader);
|
||||
|
||||
// Before continuing to next video make sure the user did not stop the processing
|
||||
|
@ -709,7 +708,7 @@ namespace OpenFaceOffline
|
|||
string directory = openDirectory();
|
||||
if (!string.IsNullOrWhiteSpace(directory))
|
||||
{
|
||||
SequenceReader reader = new SequenceReader(directory, true);
|
||||
SequenceReader reader = new SequenceReader(directory, true, fx, fy, cx, cy);
|
||||
|
||||
processing_thread = new Thread(() => ProcessSequence(reader));
|
||||
processing_thread.Name = "Image sequence processing";
|
||||
|
@ -789,7 +788,7 @@ namespace OpenFaceOffline
|
|||
int width = cam_sec.selected_camera.Item2;
|
||||
int height = cam_sec.selected_camera.Item3;
|
||||
|
||||
SequenceReader reader = new SequenceReader(cam_id, width, height);
|
||||
SequenceReader reader = new SequenceReader(cam_id, width, height, fx, fy, cx, cy);
|
||||
|
||||
processing_thread = new Thread(() => ProcessSequence(reader));
|
||||
processing_thread.Name = "Webcam processing";
|
||||
|
@ -942,14 +941,6 @@ namespace OpenFaceOffline
|
|||
fy = camera_params_entry_window.Fy;
|
||||
cx = camera_params_entry_window.Cx;
|
||||
cy = camera_params_entry_window.Cy;
|
||||
if(fx == -1 || fy == -1 || cx == -1 || cy == -1)
|
||||
{
|
||||
estimate_camera_parameters = true;
|
||||
}
|
||||
else
|
||||
{
|
||||
estimate_camera_parameters = false;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -97,6 +97,29 @@ namespace UtilitiesOF {
|
|||
}
|
||||
}
|
||||
|
||||
SequenceReader(System::String^ filename, bool directory, float fx, float fy, float cx, float cy)
|
||||
{
|
||||
m_sequence_capture = new Utilities::SequenceCapture();
|
||||
|
||||
std::string name_std = msclr::interop::marshal_as<std::string>(filename);
|
||||
|
||||
bool success;
|
||||
|
||||
if (directory)
|
||||
{
|
||||
success = m_sequence_capture->OpenImageSequence(name_std, fx, fy, cx, cy);
|
||||
}
|
||||
else
|
||||
{
|
||||
success = m_sequence_capture->OpenVideoFile(name_std, fx, fy, cx, cy);
|
||||
}
|
||||
|
||||
if (!success)
|
||||
{
|
||||
throw gcnew ReadingFailedException("Failed to open an image sequence");
|
||||
}
|
||||
}
|
||||
|
||||
// Can provide a webcam id
|
||||
SequenceReader(int webcam_id, int width, int height)
|
||||
{
|
||||
|
@ -110,6 +133,18 @@ namespace UtilitiesOF {
|
|||
}
|
||||
}
|
||||
|
||||
SequenceReader(int webcam_id, int width, int height, float fx, float fy, float cx, float cy)
|
||||
{
|
||||
m_sequence_capture = new Utilities::SequenceCapture();
|
||||
|
||||
bool success = m_sequence_capture->OpenWebcam(webcam_id, width, height, fx, fy, cx, cy);
|
||||
|
||||
if (!success)
|
||||
{
|
||||
throw gcnew ReadingFailedException("Failed to open an image sequence");
|
||||
}
|
||||
}
|
||||
|
||||
OpenCVWrappers::RawImage^ GetNextImage()
|
||||
{
|
||||
cv::Mat next_image = m_sequence_capture->GetNextFrame();
|
||||
|
|
Loading…
Reference in a new issue