FIX: VideoCapture::read() was returning empty image for camera captures
This commit is contained in:
parent
37d9c3f835
commit
8429c109be
@ -494,11 +494,15 @@ bool VideoCapture::retrieve(Mat& image, int channel)
|
|||||||
|
|
||||||
bool VideoCapture::read(Mat& image)
|
bool VideoCapture::read(Mat& image)
|
||||||
{
|
{
|
||||||
if (get(CV_CAP_PROP_POS_FRAMES) < get(CV_CAP_PROP_FRAME_COUNT))
|
double frame_pos = get(CV_CAP_PROP_POS_FRAMES);
|
||||||
if(!grab())
|
double frame_count = get(CV_CAP_PROP_FRAME_COUNT);
|
||||||
image.release();
|
if (frame_pos < frame_count || frame_pos < 0 || frame_count < 0)
|
||||||
else
|
{
|
||||||
retrieve(image);
|
if(grab())
|
||||||
|
retrieve(image);
|
||||||
|
else
|
||||||
|
image.release();
|
||||||
|
}
|
||||||
else
|
else
|
||||||
image.release();
|
image.release();
|
||||||
return !image.empty();
|
return !image.empty();
|
||||||
@ -506,10 +510,7 @@ bool VideoCapture::read(Mat& image)
|
|||||||
|
|
||||||
VideoCapture& VideoCapture::operator >> (Mat& image)
|
VideoCapture& VideoCapture::operator >> (Mat& image)
|
||||||
{
|
{
|
||||||
if(!grab())
|
read(image);
|
||||||
image.release();
|
|
||||||
else
|
|
||||||
retrieve(image);
|
|
||||||
return *this;
|
return *this;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user