오래된 사진을 스캔하므로 스캐너의 이미지와 흰색 배경이 나타납니다. 내 목표는 흰색 배경을 제거하고 사진을 찍는 것입니다. 어떻게해야합니까? 가 파이썬으로 흰색 배경에 이미지를 자르려면 어떻게해야합니까?
내 간단한 방법 : 아래의 예
import os
import time
from PIL import Image
from collections import Counter
import numpy as np
def get_cropped_image(image, crop_folder, threshold):
image_name = image.split("\\")[-1]
im = Image.open(image)
pixels = im.load()
width, height = im.size
rows = []
for h_index in xrange(height):
row = []
for w_index in xrange(width):
row.append(pixels[((w_index, h_index))])
color_count = Counter(row)[(255, 255, 255)]/float(len(row))
rows.append([h_index, color_count])
columns = []
for w_index in xrange(width):
column = []
for h_index in xrange(height):
column.append(im.getpixel((w_index, h_index)))
color_count = Counter(column)[(255, 255, 255)]/float(len(column))
columns.append([w_index, color_count])
image_data = csv.writer(open("image_data.csv", "wb")).writerows(zip(rows, columns))
rows_indexes = [i[0] for i in rows if i[1] < threshold]
columns_indexes = [i[0] for i in columns if i[1] < threshold]
x1, y1, x2, y2 = columns_indexes[0], rows_indexes[0], columns_indexes[-1], rows_indexes[-1]
im.crop((x1, y1, x2, y2)).save(os.path.join(cropped_folder, "c_" + image_name))
체크 블롭 검출 알고리즘 및 방법. SimpleCV 라이브러리에는 몇 가지가 있습니다. 계산 : http://simplecv.readthedocs.org/en/1.0/cookbook/ – darxtrix
우리가 볼 수있는 예제 사진이 있습니까? – rayryeng
사진은 개인 사진이므로 게재 할 수 없습니다. 인쇄 된 사진을 스캐너에 올려 놓고 스캔하는 것을 상상해보십시오. 인쇄 된 사진과 흰색 배경이있는 이미지를 만듭니다. – GiannisIordanou