시작하기 전에 커널 이미지와 conv2() 함수를 사용하여 이미지를 필터링하는 방법을 이해하고 있음을 분명히 밝히고 싶습니다.하지만 각 필터를 호출하여 수동으로 처리해야합니다. 픽셀.수동 평균 필터링
여기 내 목표는 커널 또는 conv2()를 사용하지 않고 각 픽셀을 불러와 이웃을 찾고 평균화하고 이전 값을 획득 한 평균으로 바꾸는 것입니다. 지금까지
for
I = 1:512;
for
J = 1:683;
A = myimage;
neighbor_offsets = [-1, A, 1, -A, A + 1, -A + 1, -A-1, A - 1];
idx = [I J];
neighbors = bsxfun(@plus,idx,neighbor_offsets);
를 사용하여 각 픽셀의 이웃을 찾기 위해 시도했지만 작동하지 않는 것, 나는 조금 그것을 해결하기 위해 노력 손실입니다. 나는 다음
sum(neighbors)/9
같은 것을 사용하여 이웃을 얻을 그 답을 이전 값을 대체 할 수 있다면 나는이 작업을 완료 할 수 있다고 생각하지만, 난 경우에 저를 수정하시기 바랍니다. 나는 가난한 질문을하는 경향이 다소 발전 했으므로 명확하지 않은 점이 있으면 알려 주시기 바랍니다. 그래서 당신을 명확히 할 수 있습니다. 감사합니다
당신이 내 질문에 대답하는 시간을 가지고,하지만 난 당신의 코드에 의해 완전히 혼란 스러워요 감사합니다, 정확히이 일의 최종 결과는 무엇인가 ? – user2475404
최종 결과는'imavg'에 포함되어 있습니다. 이 코드를 테스트하는 방법은 Matlab의 콘솔로 가서 차례로 입력하고 결과를 관찰하는 것입니다 : ** 1. **'imsz = size (myimage)'** 2. **'imavg = 0 (imsz); ** dy = (-1 : 1) ** ** 6. **'dx = (- 1) 1 : 1)''indy = yy + dy' ** 8. **'indx = xx + dx' 등 명령 끝 부분에';' 모든 계산 단계에서 부분적인 결과를 관찰하십시오. – plesiv
코드가 완벽하게 작동했습니다. 감사합니다. 작은 것, 평균 필터를 다시 실행하고 싶다면 무엇을 추가해야합니까? 동일한 방법으로 평균값과 같은 새로운 값을 얻었습니까? matlab에 "반복"기능을 찾을 수 없습니다. – user2475404