저는 AS3에서 상당히 간단한 이미지 비교 방법을 찾고 있습니다. 나는 웹 캠 (피사체가없는)에서 이미지를 비트 맵 데이터로 전달한 다음 두 번째 이미지 (이 경우 피사체와 함께)를 가져와이 데이터를 비교합니다.이 두 이미지에서 마스크를 만들고 싶습니다. 두 비트 맵에서 일치하는 픽셀로부터 나는 잠시 머리를 긁적이고 있었고, 나는 진전을 이루지 못하고있다. 어느 하나가 사용 compare픽셀 AS3 픽셀의 비트 맵 데이터 비교
답변
화소 비교법, getPixel32 같은()
건배
Jono 대해 오른쪽 방향으로 날 지점 수하는 부분을 추출 treshold를 사용해서 둘 사이의 차이를 만드는 관심있어.
편집 : 실제로는 매우 간단합니다. 트릭은 마스크 매개 변수를 사용하여 채널당 여러 번 임계 값을 적용하는 것입니다. 그렇지 않으면 0x010000
(거의 검은 색)이 0x0000FF
(검은 색 이외의 것)보다 큰 것으로 간주되므로 비교가 거의 이해가되지 않습니다. 방법은 다음과 같습니다.
var dif:BitmapData;//your original bitmapdata
var mask:BitmapData = new BitmapData(dif.width, dif.height, true, 0);
const threshold:uint = 0x20;
for (var i:int = 0; i < 3; i++)
mask.threshold(dif, dif.rect, new Point(), ">", threshold << (i * 8), 0xFF000000, 0xFF << (i * 8));
투명 마스크가 생성됩니다. 채널 값이 임계 값을 초과하는 경우 알파 채널을 완전히 불투명하게 설정하여 임계 값이 모든 세 채널에 적용됩니다 (감소시킬 수도 있음).
마스크에서 현재 비디오 이미지까지 전경 개체 ("웹캠 앞에있는 사람")를 copying the alpha channel으로 분리 할 수 있습니다.
여기에서 문제 중 하나는 픽셀에 아무런 변화가 있는지 찾아 내고 싶은 경우 해당 픽셀을 다른 색상 (마스킹 용)으로 변환하는 것입니다. 아쉽게도 웹캠의 품질은 좋지 않으므로 장면이 전혀 변경되지 않아도 웹캠에서 오는 비트 맵 데이터가 약간 변경됩니다. 그러므로 피사체가 프레임으로 들어가면 피사체의 픽셀 변경이 생기고 조명 변화 또는 카메라 화질로 인해 다른 영역의 노이즈가 생깁니다. 당신이해야 할 일은 ___보다 큰 영역에서의 변경을 위해 bitmapdaya.compare()의 결과를 분석하여 거기에있는 실제 객체를 보증하기에 충분한 변화가 있는지 판단하는 함수를 작성하는 것입니다. 그러면 소음을 제거하고 마스크를보다 정확하게 만들 수 있습니다.
- 1. 픽셀 단위로 픽셀 당 두 비트 맵 객체의 빠른 비교
- 2. AS3 : 유효 비트 맵
- 3. 비트 맵 이미지 비교
- 4. 비트 맵 데이터의 반전 된 픽셀 및 비트 맵 클래스 처리 as3
- 5. iPhone에서 비트 맵 비교 방법
- 6. C#, 비트 맵, r8g8b8 및 b5g6r5 픽셀 데이터
- 7. JSON 비트 맵 데이터
- 8. 비트 맵 데이터
- 9. Windows 프로그래밍 : ID2D1 비트 맵 인터페이스 - 비트 맵 데이터 얻기
- 10. MFC를 사용하여 비트 맵 이미지의 픽셀 조작
- 11. Android 2.1 기본 잠금 비트 맵 픽셀
- 12. 다른 비트 맵 아래의 비트 맵 GetPixel?
- 13. C#에서 비트 맵 (서명) 비교
- 14. 비트 맵 컨텍스트에서 각 픽셀의 RGBA를 반복 할 수 있습니까?
- 15. 문자에서 비트 맵 만들기
- 16. iOS 비트 맵 이미지 생성 - 간단한 예
- 17. WPF에서 비트 맵 작업
- 18. 모노크롬 비트 맵 라이브러리
- 19. TCL 캔버스 픽셀 맵
- 20. 모든 픽셀의 효율적인 픽셀 쉐이더 합
- 21. 텍스처의 픽셀 데이터를 비트 맵 (direct3d)으로 복사하는 방법은 무엇입니까?
- 22. 배열의 내용을 사용하여 Quartz 비트 맵 컨텍스트의 개별 픽셀 설정
- 23. C++ 비트 맵 이미지의 픽셀 읽기 및 편집
- 24. Android OpenGL : 비트 맵 데이터가없는 픽셀 완전 충돌
- 25. 비트 맵 꼭대기에 앉아있는 벡터의 평균 픽셀 수 얻기
- 26. 스프라이트 비트 맵 변경
- 27. 계조 (픽셀 당 8 비트) I 들었던
- 28. java.lang.outofmemoryerror 비트 맵 크기가 비트 맵에서 비트 맵 크기를 초과했습니다
- 29. 안드로이드 비트 맵 문제
- 30. 파이썬의 NSImage에서 비트 맵 데이터 추출하기
compare() 메서드를 사용하면 몇 가지 매우 이상한 결과 (여러 색상이 많이 있음)가 반환됩니다. 그런 다음 임계 값은 비트 맵의 일부를 제거하지만 상당히 엉뚱한 것으로 보입니다 ... 당신은 전설이 될 수 있으며 임계 값에 대해 약간 정교 할 수 있습니까? – Jono
@Jono : 나는하고 싶지만, 네가하고 싶은 것을 충분히 이해하지 못한다. "마스크 만들기"란 무엇을 의미합니까? 당신이 뭘하는지 당신이 더 잘 설명할수록, 당신은 만족스러운 대답을 얻게 될 것입니다;) – back2dos
죄송합니다. 나는 조금 애매 할 수 있습니다. :) 그래서 당신은 (웹캠과) 컴퓨터의 infront있어 웹캠 POV (스냅 샷을 찍을) 밖으로 이동 비트 맵 데이터로 다음 비트 맵으로 저장하십시오. 그런 다음 비트 맵 데이터로 저장 한 다음 비트 맵으로 저장하여 웹캠의 POV (다른 테이크)로 돌아가십시오. 비교/임계 값을 사용하여 비트 맵 데이터 간의 차이점을 해결하십시오. 이렇게하면 라이브 웹캠 피드를 숨길 수있는 마스크가 만들어지기 때문에 처리 수준을 낮추기 위해 모든 프레임을 업데이트합니다. 그래서 효과적으로 라이브 배경 교체 도구가 도움이됩니다. 내 코드 또는 세부 정보를보고 싶다면 알려주세요. – Jono