Remove the http protocol from images

The code you provided could cause issues with 3rd party URLs in hyperlinks not running https. You can fix this by including your home url, e.g:

$content = str_replace( set_url_scheme( home_url(), 'http' ), set_url_scheme( home_url(), 'relative' ), $content);

Next, you’re applying this when you’d like to display the content, which means you need to do an additional step. Namely, you need to apply a filter called the_content which does some final processing, such as creating paragraphs etc:

$content = get_the_content();
$content = str_replace( set_url_scheme( home_url(), 'http' ), set_url_scheme( home_url(), 'relative' ), $content);
$content = apply_filters( 'the_content', $content );

echo $content

Finally, for maximum compatibility, just call the_content();, and use the the_content filter to do your modification:

add_filter( 'the_content', 'brandozz_url_filter' );

function brandozz_url_filter( $content ) {
    $content = str_replace( set_url_scheme( home_url(), 'http' ), set_url_scheme( home_url(), 'relative' ), $content);
    return $content;
}

Filters and hooks can go inside a plugin or functions.php, this is what it looks like as a plugin:

/**
 * Plugin Name:       Relative local URLs
 * Plugin URI:        http://wordpress.stackexchange.com/questions/174228/remove-the-http-protocol-from-images
 * Description:       Replaces http:// URL containing the home url, with relative protocol urls 
 * Version:           1.0.0
 * Author:            Tom J Nowell
 * Author URI:        http://tomjn.com/
 */

add_filter( 'the_content', 'tomjn_filter_relative_content_urls' );

function tomjn_filter_relative_content_urls( $content ) {
    $content = str_replace( set_url_scheme( home_url(), 'http' ), set_url_scheme( home_url(), 'relative' ), $content);
    return $content;
}