spmallick / learnopencv

Learn OpenCV : C++ and Python Examples
https://www.learnopencv.com/
20.66k stars 11.52k forks source link

The VideoStabilization demo contains an access violation #888

Open kokuda opened 4 months ago

kokuda commented 4 months ago

https://github.com/spmallick/learnopencv/blob/97f89ca715711f5c1658bb330f8f16a5a6273fd4/VideoStabilization/video_stabilization.cpp#L264C1-L265C1

The number of transforms and transforms_smooth is 2 less than the total number of frames.

for(int i = 1; i < n_frames-1; i++)

When writing out the frames, the loop is using n_frames as the count, so accessing transforms_smooth[i] will overrun the array when i == n_frames - 2.

for( int i = 0; i < n_frames-1; i++) { ... transforms_smooth[i].getTransform(T);