일반 회색 이미지에서 계산 한 Integral Image가 있습니다. 나는 그것을 확인하고 그것이 하나 같이 : Integral Image 테두리 처리
이 지금은 예를 들어, 적분 이미지에 SURF에서 사용되는 박스 필터를 몇 박스 필터를 적용합니다.내 문제는 이제 필터는 이미지의 모서리에 반응한다는 것입니다. 나는 그것이 필터 박스의 outshifting에서 온 것 같아요. 이제 경계 처리를 구현해야한다는 것을 알았습니다. 먼저 Integral Image의 첫 번째 행과 열을 0으로 설정하는 것이 도움이된다고 생각했지만 도움이되지 않았습니다. I에 유래에서 이걸 발견 :
Dealing with Boundary conditions/Halo regions in CUDA
어떻게 내 Integralimage에이 기술을 적용 할 수있는 가장 좋은 방법은? 인테그랄 이미지에 몇 가지 가장자리 거울, 클램프 등을 만드는 것이 합리적입니까? 또는 Integral Image를 계산하기 위해 InputeImage를 사용해야합니까? 누군가 그 경험을했거나이 문제를 해결할 전형적 방법이 있습니까?
편집 : ". 대신 당신이 경계에있을 때 필터 코드에서 바이올린을 켜는 일부 인덱스를하고 싶어"
가 자,이 순간에, 나 자신 만 반복 할 수 있도록, IntegralImage의 첫 번째 col과 row는 0입니다.
int GetBoxIntegral(int xUp, int yUp, int xBot, int yBot)
{
yUp = Math.min(Math.max(0, yUp), m_integralImage.GetHeight() - 1);
xUp = Math.min(Math.max(0, xUp), m_integralImage.GetWidth() - 1);
yBot = Math.min(Math.max(0, yBot), m_integralImage.GetHeight() - 1);
xBot = Math.min(Math.max(0, xBot), m_integralImage.GetWidth() - 1);
int A = 0, B = 0, C = 0, D = 0;
A = m_integralImage.GetPixel(xUp, yUp);
B = m_integralImage.GetPixel(xBot, yUp);
C = m_integralImage.GetPixel(xUp, yBot);
D = m_integralImage.GetPixel(xBot, yBot);
return Math.max(0, A + D - B - C);
}
답장을 보내 주셔서 감사합니다. 지금은 국경에서 이미지를 반영합니다. 잘 작동하지만 Integral Image를 위해 더 많은 메모리가 필요합니다. 포인트를 무시하려면 이미지 사운드 외부의 정보가 필요합니다. 두 가지를 모두 할 수 있도록 구현하십시오. Intereset Points의 수는 미러링 된 버전과 함께 많이 증가 할 것입니다. – PeterNL