복붙노트

[PYTHON] 파이썬을 이용한 이미지 컬러 검출

PYTHON

파이썬을 이용한 이미지 컬러 검출

사이트에서 이미지를 다운로드 한 후 다운로드 한 이미지의 색상을 감지해야합니다. 이미지를 성공적으로 다운로드했지만 해당 이미지의 색상을 감지하고 해당 색상의 이름으로 저장해야합니다. 코드가 사용되었습니다. 아래 주어진. 내가 어떻게 현재 위치에서 그것을 얻을 수 있는지 말해.

imageurl='http://www.example.com/'
opener1 = urllib2.build_opener()
page1=opener1.open(imageurl)
my_picture=page1.read()
fout = open('images/tony'+image[s], "wb")
fout.write(my_picture)
fout.close()

해결법

  1. ==============================

    1.PIL (Python Image Library) 히스토그램을 사용하십시오. 히스토그램을 반복하고 픽셀 수를 기준으로 픽셀 색상의 평균을 취합니다.

    PIL (Python Image Library) 히스토그램을 사용하십시오. 히스토그램을 반복하고 픽셀 수를 기준으로 픽셀 색상의 평균을 취합니다.

  2. ==============================

    2.다른 사람들이 언급했듯이 PIL은 올바른 라이브러리입니다. 다음은 이미지를 열고 주 색상을 찾는 함수입니다.

    다른 사람들이 언급했듯이 PIL은 올바른 라이브러리입니다. 다음은 이미지를 열고 주 색상을 찾는 함수입니다.

    def get_main_color(file):
        img = Image.open(file)
        colors = img.getcolors(256) #put a higher value if there are many colors in your image
        max_occurence, most_present = 0, 0
        try:
            for c in colors:
                if c[0] > max_occurence:
                    (max_occurence, most_present) = c
            return most_present
        except TypeError:
            raise Exception("Too many colors in the image")
    

    도움이되기를 바랍니다.

    업데이트 : getcolors에 256을 전달하면 매우 작은 이미지에서는 괜찮지 만 대부분의 경우에는 작동하지 않을 수 있습니다. 큰 이미지의 경우이 값을 늘려야합니다. 예 : 1024 * 1024는 400 픽셀 * 300 픽셀 이미지에 적합합니다.

  3. ==============================

    3.URL에서 파일을 읽으려면 ImageFile 클래스의 PIL의 파서를 사용해야합니다. 그렇다면 전체 이미지가 같은 색이라고 말했기 때문에 인생은 꽤 쉽습니다. 다음은 코드에 빌드 된 코드입니다.

    URL에서 파일을 읽으려면 ImageFile 클래스의 PIL의 파서를 사용해야합니다. 그렇다면 전체 이미지가 같은 색이라고 말했기 때문에 인생은 꽤 쉽습니다. 다음은 코드에 빌드 된 코드입니다.

    import urllib2
    import ImageFile
    
    image_url = "http://plainview.files.wordpress.com/2009/06/black.jpg"
    opener1 = urllib2.build_opener()
    page1=opener1.open(image_url)
    
    p = ImageFile.Parser()
    
    while 1:
        s = page1.read(1024)
        if not s:
            break
        p.feed(s)
    
    im = p.close()
    r,g,b = im.getpixel((0,0))
    
    fout = open('images/tony'+image[s]+"%d%_d%_d"%(r,g,b), "wb")
    fout.write(my_picture)
    fout.close()
    

    이것은 이미지의 첫 번째 픽셀 색상의 빨강 녹색 및 파랑 값을 이미지 이름의 끝에 추가해야합니다. 나는 모든 것을 검사 할 때까지 모든 것을 시험했다.

  4. ==============================

    4.PIL 라이브러리의 이미지 모듈을 사용하여이를 수행 할 수 있습니다. 참조 : http://effbot.org/imagingbook/image.htm.

    PIL 라이브러리의 이미지 모듈을 사용하여이를 수행 할 수 있습니다. 참조 : http://effbot.org/imagingbook/image.htm.

  5. ==============================

    5.K-means 알고리즘을 사용하여 이미지의 K 주 색상을 얻을 수 있습니다. 다음은이를 수행하는 방법의 예입니다. K-는 OpenCV (Python)

    K-means 알고리즘을 사용하여 이미지의 K 주 색상을 얻을 수 있습니다. 다음은이를 수행하는 방법의 예입니다. K-는 OpenCV (Python)

  6. from https://stackoverflow.com/questions/2270874/image-color-detection-using-python by cc-by-sa and MIT license