Erro ao setar imagem em um ImageView

Estou desenvolvendo uma aplicação Android, estou com um problema onde eu tenho que setar em um ImageView uma imagem que o usuário escolher do seu SDCard, mas a imagem não está aparecendo no meu imageView. Alguém pode me ajudar?

Esse é meu código.

  public void escolherFotoPerfil(View view){
	Intent intent = new Intent(Intent.ACTION_GET_CONTENT);
	intent.setType("image/*");
	startActivityForResult(intent, IMAGEM_INTERNA);
}

protected void onActivityResult(int requestCode, int resultCode, Intent intent){
//alguma aplicação respondeu a nossa intent.
if(requestCode == IMAGEM_INTERNA){
//verifica se o processamento foi feito corretamente.
if(resultCode == RESULT_OK){

			//URI acessa o recurso da imagem na aplicação.
			Uri imagemSelecionada = intent.getData();
			
			//pega as colunas do sistema de arquivos do Android.
			String[] colunas = {MediaStore.Images.Media.DATA};
			
			//Cursor percorre resultado de um banco de dados.
			Cursor cursor = getContentResolver().query(imagemSelecionada, colunas, null, null, null);
			//inicialmente não está em nenhuma linha, esse comando move para a primeira.
			cursor.moveToFirst();
			
			//essas duas linhas servem para pegar o caminho da imagem que o usuário selecionou.
			int indiceColuna = cursor.getColumnIndex(colunas[0]);
			String pathImagem = cursor.getString(indiceColuna);
			
			cursor.close(); 
			
			//transforma imagem em bitmap.
			Bitmap imgBitMap = BitmapFactory.decodeFile(pathImagem);
			
			ImageView imgvFotoPerfil = (ImageView) findViewById(R.id.imgvFotoPerfil);
			
			//joga o bitmap no ImageView.
			imgvFotoPerfil.setImageBitmap(imgBitMap);
		}
	}
}