2012-06-25 1 views
0

저는 각 사용자가 큰 아바타와이 아바타의 미리보기 이미지를 가지고있는 프로젝트에서 작업하고 있습니다. 아바타는 150x215이고 미리보기 이미지는 50x50입니다. 썸네일을 생성하기 위해, 사용자는 아바타 내의 정사각형 영역을 선택하고, 시스템은 아바타를 자르고 크기 조정하여 썸네일을 생성한다.이미지 내에서 크기가 조정 된 하위 이미지 찾기

이제 70x70 미리보기 이미지가 필요합니다. 50x50 미리보기 이미지의 크기가 좋아 보이지 않기 때문에 크기를 조정할 수 없습니다. 내 생각은 아바타 내부의 미리보기 이미지를 찾고, 미리보기 이미지 위치를 사용하여 새로운 70x70 이미지를 생성하는 도구를 만드는 것이 었습니다. 일부 미리보기 이미지가 잘리는 것뿐만 아니라 크기가 조정된다는 사실을 알기 전까지는 제대로 작동했습니다. 이미지 크기를 조정하면 픽셀 단위로 비교할 수없는 픽셀을 잃어 버립니다 (따라서 아바타 내의 축소판 위치를 감지 할 수 없음).

축소판 그림의 위치를 ​​확인할 수있는 방법이 있습니까 (크기를 조정 했더라도). 이미지를 처리하는 데 EMGU을 사용하고 있습니다. 어떤 도움

+0

처음 사용에서 선택한 좌표를 저장하지 않았습니까? – Slugart

+0

네, 맞습니다. 위치는 저장되지 않습니다. 썸네일을 아바타와 비교하는 아이디어는이 위치를 얻는 것입니다. – JSBach

답변

1

[EDIT1]

에 대한

덕분에 당신은 스케일링 인자는 원래 아바타에 적용이 있다면, 메모를보고 다음 같은 스케일링 팩터를 가지고 임시 축소판을 만들 수 있습니다 적용한 다음 이미 스케일 된 아바타에 대한 미리보기 이미지의 통계적 등가성 검사를 수행합니다. 이것은 썸네일이 아바타 내에있을 가능성이있는 각 위치에 대해 축소 된 아바타 이미지에 대한 썸네일의 "차이 이미지"를 찾는 것과 같습니다. 이러한 "차이 이미지"각각에 대해 픽셀 기반 차이점 모두를 결합 된 단일 숫자 차이로 추가하고 x 및 y 위치의 크기에 맞게 크기가 조정 된 2D 배열에 저장할 수 있습니다. 축소판 이미지는 축소 된 아바타 이미지 내에 배치 될 수 있습니다 (이 실제로 총 아바타 이미지 크기보다 작을 것입니다. width = avatarWidth - thumbWidth 및 height = avatarHeight - thumbHeight). 이 2D 배열에 대한 단일 차이 인스턴스를 모두 계산 한 후에는 배열 내에서 min을 찾고 사용하려는 크기 조정 된 아바타 내의 상단 왼쪽 픽셀 위치입니다. 계산 된 상단 왼쪽 지점에서 70 x 70을 잡을 때 50x50 엄지의 새로운 크기 조정 된 크기를 고려해야합니다.

차이점 값의 2D 배열을 저장해야합니다. 테스트 된 첫 번째 위치의 값으로 초기화 된 최소 위치 만 잡고 현재 위치가 다음보다 작은 경우에만 업데이트 할 수 있습니다. 현재의 min. 이렇게하면 배열을 추가로 저장하지 않아도됩니다.

[ORIGINAL] 아바타 이미지의 크기가 변경되면, 이는 모든 목적을 집중 원래 화소 정보 mathmatically 비가 역적으로 변화되었음을 의미 보간되었다.

원본 thumbnailing 코드에 들어가서 70 x 70 px 크기의 하위 이미지를 캡처하도록 축소판 코드를 변경 한 다음 각 측면에서 10 px를 잘라서 50 x 50 크기로 만들면 더 좋습니다. 50 x50 및 70 x 70 축소판이 여전히 필요하다고 가정합니다.

+0

네, 그게 사실이고 새로운 사용자에게는 좋지만 이전 사용자의 아바타를 처리해야합니다 : ( – JSBach

+0

편집을 확인하십시오 !!!이 방법을 기억하십시오 그러나 당신은 "0"의 차이 값을 결코 얻지 못할 것이므로 반드시 그 값을 기대하지 않아야합니다. – trumpetlicks

+0

예, 불행히도 나는 가지고 있지 않습니다 : 사용자가 20x20을 선택하면 영역의 크기는 50x50으로 조정됩니다.사용자가 100x100 영역을 선택하면 50x50 크기로 조정됩니다. 어떤 크기의 영역이 발생하기 때문에 이미지가 선택된 영역보다 커지거나 작아 지는지조차 알지 못합니다. ( 시간 프레임에서 가능하지 않다고 생각하기 시작했습니다. ( 어쨌든 고마워요 :) – JSBach