잡음이있는 이미지 행렬에서 직사각형을 자동 감지하려고합니다. 값은 2 진수이며 임의의 수의 직사각형이 있습니다. 가장자리는 노이즈로 인해 약간 퍼지 수 있습니다. 나는 직사각형의 좌표 또는 그와 같은 다른 방법으로 그 영역에 집중할 수있게하고 싶습니다.R에서 컴퓨터 비전을 사용하여 잡음이 많은 데이터에서 사각형 찾기
나는 PET 패키지에서 Hough 변환을 시도했지만 출력 해석 방법을 이해하지 못했습니다. 나는 다른 패키지 또는 기술에 열려 있습니다.
library(PET)
AddRectangle<- function(df, startx, starty, cols, rows){
RectangleVector <- rep(1:cols, times = rows)
#Start Point
RectangleVector <- ncol(df)*(starty-1) + (startx-1) + RectangleVector
#Row changes
RectangleVector<- RectangleVector+ rep((0:(rows-1))*ncol(df), each = cols)
RectangleVector
}
#create matrix, this is an arbitrary example.
dfrows <- 100
dfcols <- 100
df <- matrix(0, nrow = dfrows, ncol = dfcols)
#put in rectangles
df[AddRectangle(df, startx = 3, starty = 3, cols = 10, rows =10)] <-1
df[AddRectangle(df, startx = 40, starty = 50, cols = 30, rows =20)] <-1
df[AddRectangle(df, startx = 45, starty = 10, cols = 30, rows =35)] <-1
df[AddRectangle(df, startx = 80, starty = 80, cols = 10, rows =10)] <-1
image(df,col = grey(seq(0, 1, length = 2)))
set.seed(2017)
#add in noise
noisydf<- df
#Positives
noisydf[runif(dfrows*dfcols)>0.97]<-1
#negatives
noisydf[runif(dfrows*dfcols)>0.97]<-0
#Visualise
image(noisydf,col = grey(seq(0, 1, length = 2)))
이 코드는 다음 이미지를 만듭니다.
내가 아주 좋은 사진을 얻을 수 있지만, 그것으로 무엇을 해야할지 모르겠어요 애완 동물 패키지를 사용. 우리가 얻고 자하는 것은 직사각형의 좌표와 같은 것입니다. 나는 Hough 변환에 묶여 있지 않으며 어떤 성공적인 방법도 좋습니다. 무료로 - 아무도 당신을 응답 할 것 같다으로
test <- hough(noisydf)
image(test$hData)
시작 이미지가 유용 할 것입니다. –
주어진 코드는 표시된 이미지를 생성합니다. 시끄러운 이진 행렬에서 사각형을 찾는 일반적인 방법을 찾고 있으므로 특정 이미지가 없으므로 클래스 행렬의 객체를보고 있기 때문에 이미지 형식이 없습니다. 이미지를 구체적으로 요구하는 이유가 있습니까? 나는 정보가 누락되면 명확하게하려고 노력할 것이다. 유용한 정보를 놓친다면 사과하는 이미지 처리가 처음이에요. –
그러면 표시된 이미지에서 계속해서 사각형을 찾으시겠습니까? 그렇다면'cv :: connectedComponents'가 필요하다고 생각한 다음 작은 얼룩을 제외시킬 최소 영역을 설정하십시오. –