2012-10-17 7 views
4

이미지가 제곱되는지 (픽셀 화되었는지) 확인하려고합니다.파이썬에서 픽셀 화 된 이미지 감지하기

나는 numpy 또는 scipy로 2D 4 중 변환을 들어 보았지만 조금 복잡합니다.

목표 인해이 (IMG가)와 같은 나쁜 압축 제곱 영역의 양을 결정하는 것입니다 :

+2

이것은 내 머리 꼭대기에있는 것이므로 단지 댓글 일뿐입니다. 압축되지 않은 원본 이미지에 액세스 할 수 있습니까? 그렇다면 2 개의 이미지의 색상 수를 시도해보십시오. 하나가 다른 하나보다 상당히 낮 으면 거의 확실하게 픽셀 화/포스터 라이 제이션이 발생합니다. –

+0

슬프게도 원래 이미지에 액세스 할 수 없습니다. – kollo

답변

2

나는이 일을한다면 아무 생각이 없다 -하지만, 당신이 시도 수있는 일이다 픽셀 주위에서 가장 가까운 이웃을 얻는다. 픽셀 화 된 사각형은 한 지역의 RGB 값에서 눈에 띄는 점프가됩니다.

당신은

def get_neighbors(x,y, img): 
    ops = [-1, 0, +1] 
    pixels = [] 
    for opy in ops: 
     for opx in ops: 
      try: 
       pixels.append(img[x+opx][y+opy]) 
      except: 
       pass 
    return pixels 

이 소스 이미지의 영역에서 당신에게 가장 가까운 픽셀을 줄 것 같은 것을 사용하여 이미지의 모든 픽셀의 가장 가까운 이웃을 찾을 수 있습니다.

를 사용하려면, 당신은 더하지만 생각, 사용 OpenCV의 후

def detect_pixellated(fp): 
    img = misc.imread(fp) 
    width, height = np.shape(img)[0:2] 

    # Pixel change to detect edge 
    threshold = 20 

    for x in range(width): 
     for y in range(height): 
      neighbors = get_neighbors(x, y, img) 

      # Neighbors come in this order: 
      # 6 7 8 
      # 3 4 5 
      # 0 1 2 

      center = neighbor[4] 
      del neighbor[4] 

      for neighbor in neighbors: 
       diffs = map(operator.abs, map(operator.sub, neighbor, center)) 
       possibleEdge = all(diff > threshold for diff in diffs) 

처럼 뭔가를하고 에지 검출을하고 윤곽의 크기를 얻을 것입니다. 그렇게하면 훨씬 쉽고 강력해질 것입니다.

+0

마지막 단락 "... OpenCV를 사용하고 가장자리 감지를 수행하고 등고선 크기를 얻으십시오 ..."많이 도움이되었습니다! 감사 – Hamed

1

2 차원 이미지 그래프 대신 선형 그래프를 다루기 때문에 abit가 더 쉽습니다.이 그래프는 항상 더 간단합니다.

해결책 :

:

의 블록 성을 결정하기 위해, 각 화소를 가로 질러 라인 스캔이 계산에 액세스 빠른 경우 배열에 줄을 추가 한 다음 라인 (들)에 대한 알고리즘을 실행할

1/라인의 모든 픽셀을 통과하여 두 픽셀 사이의 값을 빼서 이전 픽셀과 비교합니다. 이전 픽셀 값의 배열을 만듭니다. 픽셀 값의 큰 점프가 규칙적인 반전에서 발생하면 막히게됩니다. 값의 작은 점프와 결합 된 값의 큰 점프가있는 경우 블록이 뭉툭합니다 ... 균등 한 픽셀 차이가 많은 경우 블록이 흐릿합니다. 특히 2 및 4 인접 픽셀 간격으로 두 번 분석을 반복하면 여러 줄에.

픽셀 사이의 픽셀 차이 그래프를 3-5-10 픽셀 간격으로 만들면 샘플링 된 선의 그라디언트 변경에 대한 추가 정보를 얻을 수 있습니다. 이웃 픽셀과 다섯 번째 이웃 픽셀의 픽셀 차이의 비율이 비슷한 경우, 그것은 또한 매끄러운 색상을 나타냅니다.

2 차원 이미지보다 더 단순한 오디오에서와 같이 선형 그래프에서 빠른 4 차원을 포함하여 많은 알 고리즘이있을 수 있습니다.

관련 문제