2017-12-20 14 views
0

저는 사용자가 두 개의 이미지를 찍고 첫 번째 이미지를 픽셀 단위로 "빼기"하는 Android 앱을 만들고 있습니다.2 개의 이미지를 뺄 때 나는 밝은 노란색/빨간색/핑크 색이 무엇입니까?

본질적으로, 두 개의 비트 맵 차원 INT 배열로 변환하고, 화상 감산은 다음 방법을 사용하여 수행된다 :

private int[][] pixelmapDifference(int[][] subtrahend, int[][] minuend) { 
    int[][] diff = new int[subtrahend.length][subtrahend[0].length]; 
    for (int x = 0; x < diff.length; x++) { 
     for (int y = 0; y < diff[0].length; y++) { 
      diff[x][y] = minuend[x][y] - subtrahend[x][y]; 
     } 
    } 
    return diff; 
} 

생성 된 2 차원 어레이가 다음 비트 맵으로 변환된다. 이것은 3 개의 이미지가 보이는 것입니다 (첫 번째, 두 번째 및 차이).

enter image description here

enter image description here

enter image description here

어떻게이 차지합니까? 이 두 경우의 차이점을 얻고 싶습니다.이 경우에는 물뿐입니다.

+0

당신은 이미지가있는 값을 뺄 수 없습니다. 실제로 달성하고자하는 것을 기술하십시오. 문제는 정확한 값이 아니라 패턴이기 때문에 이미지를 비교하는 것과 관련하여 컴퓨터가 실제로 불량하다는 점에 유의하십시오. 기능을 인식하는 컴퓨터 비전은 여전히 ​​중요한 부분입니다. –

답변

0

처음부터 항상 초를 뺍니다. 두 번째 것이 더 밝을 때 어떻게됩니까? 반환 된 값은 0 이하입니다. 나는 어떤 일이 일어날 지 확신하지 못한다. 그러나 문서는 그 색깔이 int color = (A & 0xff) << 24 | (R & 0xff) << 16 | (G & 0xff) << 8 | (B & 0xff); 라고 말하고있다. 그래서 어떤 상황에서는 더 어두운 곳에서 더 가볍게 빼기 때문에 결과는 이상한 점들이다.

+0

그건 의미가 있습니다. 어떤 해결 방법을 알고 있습니까? –

+0

어느 것이 더 작은 지 확인하십시오. 그러나 그것은 당신이 성취하고자하는 효과의 종류에 달려 있습니다. –

+0

따라서 23,34,33 (RGB)에서 25,33,32을 뺀 것을 예로 들자면, 내 앱에서 빨간색 값이 254로 "주위를 감싸고있다"는 것을 알 수 있습니까? –