2010-03-02 2 views
4

2 진화 된 이미지에서 유령 객체를 제거하기위한 후 처리 알고리즘을 알고있는 사람이 있습니까? 문제 : 예를 들어 niblack 메서드 또는 bernsen을 사용하여 이미지를 이진화하면 많은 노이즈가 발생합니다. 레드 북 또는 인터넷에서 이진화에 대한 기사를 읽었으며 Niblack 및 다른 이진법 인 후 처리 단계가 필요하다고 말합니다. 그러나 그 이유는 무엇인지, 후 처리 작업인지는 알 수 없습니다. 그러니 제발, 누군가가 알면 내게 전화 해. EDIT : 원본 이미지 :적응 임계 값 2 진화 : 유령 객체를 제거하기위한 후 처리

alt text http://i.piccy.info/i4/20/63/b970ab2ca66e997f421e969a1657.bmp

Bernsen 액 31 winsize 콘트라스트 차이 15 :

alt text http://i.piccy.info/i4/32/55/2f1e0293311119986bd49529e579.bmp

Bernsen 액 31 winsize 콘트라스트 차이 31 :

alt text http://i.piccy.info/i4/2a/13/774508890030b93201458986bbd2.bmp

니 블랙 메소드 윈도우 사이즈 15 k_value 0.2 :

alt text http://i.piccy.info/i4/12/4f/fa6fc09bcba7a7e3245d670cbfa5.bmp는 는

니 블랙 방법 창 크기 31 k_value 0.2

:

alt text http://i.piccy.info/i4/c0/fd/1f190077abba2aeea89398358fc0.bmp

는 EDIT2 :시피 는 니 블랙 액은 많은 소음을 낸다. 그리고 창 크기를 줄이면 검정색 사각형이 약간 흰색 내부가됩니다. Bernsen의 노이즈는 더 적지 만 콘트라스트 차이를 더 크게 만들었더라도 한 가지 문제가 있습니다. 지금은 이미지를 생성 할 수 없습니다. 문제 : 이미지에 색상이있는 일부 개체가 포함되어있는 경우 흰색 배경에 흰색을 사용하는 경우 검정색으로 표시된 영역이있는 경우이 메서드는 해당 개체를 무시하고 결과가 잘못되었습니다. minimum_grayscale_value 다음, DIFF가 임계 값 을 계산하는데 사용되지만, I는 상기 작성한 경우, 우리는이 최대 값 - DIFF = maximum_grayscale_value 콘트라스트의 차이를 계산하는 각각의 화소에 : Bernsen 방법 공식을 사용하기 때문이다 이고 최소값은 0입니다. 임계 값은 128입니다. 그러나 실제 개체 색은 128 (흰색 근처)보다 높습니다.

그래서 2 진수를 올바르게 작성하려면 몇 가지 사후 처리 작업을 사용해야합니다. 의견이 있으십니까? K-수단을 사용하여

+0

예제 이미지를주세요. (이진화 전과 후에). 그것에 따라 일부 형태 학적 정리가있을 수 있습니다. – AVB

+0

이미지를 추가 한 후 나중에 주석을 달 것입니다. 아니요 timenow – maximus

+0

더 많은 정보를 추가했습니다. 방법 실현은 정확하지만 여기서는 어떤 문제가 있으며 더 나은 이진화를 위해 무엇을해야합니까? – maximus

답변

2

전체 파이썬 프로그램이 도구는 최적의 양자화 간격을 찾기위한 의미 : 각 반복하는 동안

from scipy.misc import imread, imsave 
def kmeans(file_in, file_out, maxiter): 
    X = imread(file_in) 
    thresh = X.mean() 
    for iter in range(maxiter): 
     thresh = (X[X<thresh].mean() + X[X>=thresh].mean())/2.0 
    X[X<thresh] = 0 
    X[X>=thresh] = 255 
    imsave(file_out, X) 
    return X, thresh 

을, K-수단의 중심을 계산 각각 다음에 기반 클러스터에 요소를 재 할당 "클러스터" 재 계산 된 센터. 각각의 요소 (즉, 픽셀)가 1 차원이고 단지 2 개의 클러스터가 요구되는 간단한 경우에, 임계 값은 단순히 2 개의 클러스터 중심의 평균이다.

게시자가 게시 한 이미지의 경우이 방법이 작동하지만 다른 질문 (예 : 다른 질문에 게시 한 이미지)의 경우에는이 방법을 사용할 수 없습니다.그러나 추가 정보없이이 솔루션이 작동한다고 생각합니다.

출력 :

binary.bmp http://up.stevetjoa.com/binary.bmp

+0

이 알고리즘은 전역 임계 값처럼 작동하는 것으로 보입니다. 그러나 전역 임계 값이 잘못된 다른 이미지를 2 진수로 결정하면 어떻게됩니까? – maximus

+0

그래, 그럼 뭔가가 필요할지도 모른다. 주어진 이미지를 예로 들어이 질문에 답하는 중일 뿐이므로 솔루션이 작동합니다. –

+0

좋아, 나에게는 생각이 있지만 스피드와 아이디어 자체는 확실하지 않다. 그래서 어떤 알고리즘에 의해 특정 이미지에서 몇 개의 클러스터가 필요한지를 나타내는 숫자 N을 얻을 수 있고 K-Means 알고리즘을 사용하여 2 진화되지는 않지만 세그먼트 이미지와 같은 것이 세그먼트 수는 N입니다. 실제로 이 경우의 세그먼트 란 화소가 소정의 영역에 속하는 영역을 의미한다. 그러면 더 간단한 이미지로 작업 할 수 있습니다. 다음 단계는 이전보다 더 쉽게 생각하거나이 세그먼트를 별도로 사용하는 이진화 일 수 있습니다. 그럼 어떻게 생각하니, 효과가 있을지 말해 줄 수 있니? – maximus

0

그것은 정말 문제처럼 ... 당신이를 통해 펌핑하고 이미지의 유형이 무엇 분할 문제입니다입니다 소리?

Btw, 질문에 대답하는 대신 어떻게 대답합니까?

+0

이미지의 종류는 무엇을 의미합니까? 카메라는 불규칙한 조명과 같이 다른 조건으로 제작됩니다. 텍스트가 있고 Niblack은 텍스트 이미지를 처리하는 데 가장 좋았지 만 매우 시끄 럽습니다. 질문에 의견 추가 버튼이 있습니다. 질문 하단에서 확인할 수 있습니다. 이미 게시 된 댓글 아래에 있습니다. – maximus

+0

유형별로 의미하는 것은 합성 텍스처, 생물학적 이미지 등입니다. 각각 해결 방법은 매우 다릅니다. 일부는 주파수 도메인 솔루션에 적합하고 다른 일부는 기하학적 기반 솔루션에 적합합니다. 또한 색상 균형, 방사형 왜곡 등과 같은 모든 다른 요인에 따라 달라집니다. – jghost

0

질문이 오래된 것일 수 있습니다. 그러나 답을 찾을 수없는 사람들은 이러한 상황에서 사용해야하는 방법, 즉 빠르게 변화하는 배경 이미지가 로컬 회색조 임계 값이 아니라 로컬 특징 임계 값을 분석합니다 이미지는 로컬 그레이 레벨이 아닌 스트로크 너비 (Stroke Width) 방법을 사용합니다. U는 인터넷에서 그것을 찾을 수 있습니다.