Display an image instead of tag name?

A clean and semantic way to do it would be with CSS.

First, the PHP:

<div class="entry-meta">
    <span class="term-links">
        <?php foreach ( get_the_terms( $post->ID, 'region') as $term ) : ?>
            <a href="https://wordpress.stackexchange.com/questions/233793/<?php echo esc_url( get_term_link( $term->term_id ) ) ?>">Region: <span class="<?php echo $term->slug ?>"><?php echo $term->name ?></span></a>
        <?php endforeach; ?>
    </span>
</div>

Next, the CSS:

.term-links .usa {
    display: inline-block;
    width: 16px;
    height: 11px;
    background: url('http://i.stack.imgur.com/B2K4X.gif');
    text-indent: 100%;
    white-space: nowrap;
    overflow: hidden;
}

Just repeat the CSS for each region, changing the background URL.