Take for example this fiddle: https://jsfiddle.net/ou33muc2/
<div class = "overallDiv">
<div id="example"><img src = "http://writingexercises.co.uk/images2/randomimage/slimy.jpg" style="width:100vw; opacity: 0.5;"/></div></div>
Because the image is vertically aligned at the baseline - where text usually would be placed. And there's space below the baseline, for letters with "descenders" like j, g, p etc.
To avoid that, just add
line-height: 0; to the container:
https://jsfiddle.net/5czathrh/1/ (edit: updated)