This is a CSS issue. Unfortunately, child elements inherit opacity, so the <h3> and the <p> are inheriting the 0.8 opacity of the containing div.
In the first example you linked to, the opacity is being set in the imageOverlay.css file here (in red):
<font color='"Red"'>/* The way to change overlay opacity is the follow properties. Opacity is a tricky issue due to
longtime IE abuse of it, so opacity is not offically supported - use at your own risk.
To play it safe, disable overlay opacity in IE. */
/* For Firefox/Opera/Safari/Chrome */
/* For IE 5-7 */
/* For IE 8 */
You could remove that code in red, and that will leave you with a black background and gray text—with no opacity at all.
If you are happy only to have background opacity in CSS3 capable browsers, you could try editing the jquery.ImageOverlay.min.js file. Near the end you see:
You could try changing it to