다음과 같이 단순화 한 이미지 처리 문제를 다루고 있습니다. 세 개의 10x10 행렬이 있는데 각 행마다 각 셀에 1 또는 -1 값이 있습니다. 각 행렬에는 어딘가에이라는 불규칙한 객체가 있으며 행렬에 약간의 노이즈가 있습니다. 나는 그들의 평균을 얻을 수 있도록 객체를 정렬 할 수있는 행렬의 최적 정렬을 찾는 방법을 찾고 싶습니다.시끄러운 이가 진수의 최적 겹침을 찾는 방법
1/-1 코딩의 경우, 곱셈 된 두 셀 사이에 일치가있는 경우 1을, 두 곱한 셀 사이에 일치가있는 경우 요소가있는 곱셈을 사용하면 1을 얻을 수 있습니다. 불일치로 인해 제품의 합이 중첩의 척도가됩니다. 이것으로, 나는 최적의 오버랩을 산출하는 것을 찾기 위해 두 매트릭스의 모든 가능한 정렬을 시도 할 수 있다는 것을 알고 있지만, 3 매트릭스 (또는 그 이상 - 실제로 실제 데이터에서 20+ 이상을 갖는 방법) 세트). 매스 매 티카의 프로그램이 당신이 원하는 않는다는 것입니다 여기에
#set up the 3 matricies
m1 = c(-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,-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,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,-1)
m1 = matrix(m1,10)
m2 = c(-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,-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,-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,-1)
m2 = matrix(m2,10)
m3 = c(-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,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,-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,-1)
m3 = matrix(m3,10)
#show the matricies
image(m1)
image(m2)
image(m3)
#notice there's a "+" shaped object in each
#create noise
set.seed(1)
n1 = sample(c(1,-1),100,replace=T,prob=c(.95,.05))
n1 = matrix(n1,10)
n2 = sample(c(1,-1),100,replace=T,prob=c(.95,.05))
n2 = matrix(n2,10)
n3 = sample(c(1,-1),100,replace=T,prob=c(.95,.05))
n3 = matrix(n3,10)
#add noise to the matricies
mn1 = m1*n1
mn2 = m2*n2
mn3 = m3*n3
#show the noisy matricies
image(mn1)
image(mn2)
image(mn3)