근본적으로 이웃하는 셀 값의 가중치 평균을 취하는 이진 이미지에 필터를 적용하고 싶습니다. 이 부분은 이미 설정했습니다.가장자리를 따라 가중치가있는 요소를 변경하여 이미지 필터링
내 문제는 이제 내 이미지에 "가장자리"가있는 것입니다 (매트릭스 가장자리가 아님). 나는 이웃 요소들에 대해 가중치를두기를 원하지만, 관심있는 특정 요소들에 대해서만 그렇게하고자한다.
내가 아는 두 가지 접근법이있다. 어느 쪽이든 1) 가장자리가 디스크에 근접했을 때 디스크 필터의 무게를 변경하거나 2) 어떻게해서 가장자리 근처의 값을 반대쪽으로 반영/반사 시키십시오. 2)의 문제점은 내 가장자리가 직선이 아니며 모든 종류의 것이 어딘가에 있다는 것입니다. 여기
는 시나리오의 지나친 단순화이다bin = [0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0
1 1 1 1 0 0 0 0
1 1 1 1 1 0 0 0
1 1 1 1 1 0 0 0
1 1 1 1 0 0 0 0
0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0];
mask = [0 0 0 0 0 0 0 0
0 0 0 1 1 1 0 1
1 1 1 1 1 1 1 1
1 1 1 1 1 1 1 1
1 1 1 1 1 1 1 1
1 1 1 1 1 1 1 1
0 0 1 1 0 0 0 0
0 0 0 0 0 0 0 0];
내가 bin
에 필터를 적용 할하지만 난 단지 mask
에서 1의 값을 가질 요소의 가중치를 먹고 싶어. bin
은 반드시 가장자리의 비선형 성 때문에 미러링 할 수 없으므로 디스크 필터의 가중치로 변경하는 방법이 있어야합니다. 예를 들어 일반 디스크 필터에 20 개의 요소가있는 경우 각 요소의 가중치는 0.05입니다. 그러나 우리가 편평한 가장자리에 맞았다 고 가정 해 봅시다. 디스크 필터에있는 bin
값의 절반 만 mask
에 1의 값을 갖습니다. 따라서 10 개의 요소가 있으며 각 요소의 가중치는 0.1입니다. 이와 같이 필터를 적용하는 비 반복적 인 방법이 있습니까?
내가 fspecial' '에서 파생 된 디스크 필터'imfilter'을 사용하고있는 경우, 어떻게 구현하는 것이'nanmean'? – Darrik
@Darrik은 필터링 부분에 대한 편집을 참조하십시오. 원이 필요한 경우 블록 (현재 3x3)의 크기를 디스크 필터 'h'의 크기로 업데이트하고'fun = @ (x) nanmean (nanmean (x. * (h> 0)) '을 사용할 수 있습니다. '. –
고마워요. 또 다른 빠른 질문입니다. 잘하면 당신은 여전히 나를 도울 수 있습니다. 정상적인 블록을 사용한 첫 번째 결과는 다음과 같습니다. http://i.imgur.com/ddtBcgz.png 괜찮아 보이는군요. 하지만 내 원형 디스크 필터의 경우 다음과 같이 보입니다 : http://i.imgur.com/B7S2MwH.png 문제는 중간의 값이 1 대신 0.8이며 문제가있는 것처럼 보입니다. 또한 왼쪽 경계에 '대칭'옵션을 적용 할 수있는 방법이 있습니까? – Darrik