Correspondência entre coordenadas do ImageView e pixels de bitmap - Android

No meu aplicativo, eu quero que o usuário possa selecionar algum conteúdo de uma imagem contida em umImageView.

Para selecionar o conteúdo, subclassei oImageView classe tornando-se implementar oOnTouchListener então desenhar sobre ele um retângulo com bordas decididas pelo usuário.

Aqui está um exemplo do resultado do desenho (para ter uma idéia de como funciona você pode pensar nisso como quando você clica com o mouse na sua área de trabalho e arrasta o mouse):

Agora eu preciso determinar qualpíxeis doBitmap imagem correspondem à parte selecionada. É fácil determinar quais são os pontos doImageView pertencente ao retângulo, mas não sei como obter os pixels correspondentes, já que oImageView tem um formato diferente da imagem original.

Eu segui a abordagem descritaespecialmente aqui, mas também aqui, mas não estou totalmente satisfeito, porque na minha opinião a correspondência feita é 1 em 1 entre pixels e pontos noImageView e não me dá todos os pixels correspondentes na imagem original para a área selecionada.

ChamandohoveredRect o retângulo noImageView os pontos dentro dele são:

class Point {
    float x, y;
    @Override
    public String toString() {
        return x + ", " + y;
    }
}

Vector<Point> pointsInRect = new Vector<Point>();

for( int x = hoveredRect.left; x <= hoveredRect.right; x++ ){
    for( int y = hoveredRect.top; y <= hoveredRect.bottom; y++ ){

        Point pointInRect = new Point();
        pointInRect.x = x;
        pointInRect.y = y;
        pointsInRect.add(pointInRect);
    }   
}

Como posso obter umaVector<Pixels> pixelsInImage contendo os pixels correspondentes daBitmap imagem?

EXPLICAÇÕES ADICIONADAS

Vou explicar um pouco melhor o contexto do meu problema:

Eu preciso fazer algum processamento de imagem na parte selecionada, e quero ter certeza de que todos os pixels no retângulo são processados.

O processamento da imagem será feito em um servidor, mas ele precisa saber exatamente quais pixels processar. Servidor funciona com imagem com dimensões reais, o aplicativo android apenas informa quais pixels processar para o servidor, passando um vetor contendo as coordenadas de pixel

E por que não gosto das soluções propostas nos links acima:

As respostas dadas transformam coordenadas com uma moda de 1 para 1. Essa abordagem claramente não é válida para minha tarefa, já que uma área de, digamos, 50 pontos noImageView de um determinado tamanho na tela não pode corresponder a uma área do mesmo número de pixels na imagem real, mas deve considerar a proporção de aspecto diferente.

Como exemplo, esta é a área que deve ser selecionada se a imagem for menor que aImageView mostrado no aplicativo:

questionAnswers(3)

yourAnswerToTheQuestion