소프트웨어 개발 165

NP, P 문제

P 문제는 결정 문제들 중에서 쉽게 풀리는 것을 모아 놓은 집합이다. 어떤 결정 문제가 주어졌을 때, 다항식(Polynomial) 시간 이내에 그 문제의 답을 YES와 NO 중의 하나로 계산해낼 수 있는 알고리즘이 존재한다면, 그 문제는 P 문제에 해당된다. nnn자리 이하의 수 a와 b가 주어졌을 때, a가 b의 배수인지를 판정하는 것은 유클리드 호제법을 사용하면 nnn에 대한 다항식 시간에 계산할 수 있으므로, 'a는 b의 배수인가?'하는 문제는 P 문제에 해당된다. NP 문제는 결정 문제들 중에서 적어도 검산은 쉽게 할 수 있는 것을 모아 놓은 집합이다. 정확히 말하면, 어떤 결정 문제의 답이 YES일 때, 그 문제의 답이 YES라는 것을 입증하는 힌트가 주어지면, 그 힌트를 사용해서 그 문제의 답..

InMemoryUploaded 파일 -> 수정 -> 모델 저장

from skimage import data, io, filters, color from scipy import misc image = io.imread(image) //작업 후, filtered_image로 넘김. filtered_image = Image.fromarray(filtered_image_arr) file_name = str(image) misc.imsave(file_name, filtered_image) img = Image.open(file_name) image_string = StringIO.StringIO() img.save(image_string, 'PNG') newFile = InMemoryUploadedFile(image_string, None, file_name, 'image/..

cannot write mode F as PNG

이미지 저장 시 다음과 같이 소수점이 포함된 이미지의 경우, 보통의 PNG 나 JPEG 형식으로는 저장이 안된다. 확장자는 TIFF 형식이여야함 color.rgb2gray(image) Out[5]: array([[ 0.9631749 , 0.9631749 , 0.9631749 , ..., 0.73354863, 0.72570549, 0.72570549], [ 0.9631749 , 0.9631749 , 0.9631749 , ..., 0.72962706, 0.72962706, 0.72570549], [ 0.9631749 , 0.9631749 , 0.9631749 , ..., 0.72962706, 0.72962706, 0.72962706], ..., [ 0.5438349 , 0.53991333, 0.5359917..

Saving Ndarray to InMemoryUploadedFile

이미지를 조작하는 ndarray에서 모델에 저장하기 위해 inmemoryuploadedfile 형태로 바꿔야하는 경우가 있다. http://stackoverflow.com/questions/3723220/how-do-you-convert-a-pil-image-to-a-django-file import StringIO from django.core.files.uploadedfile import InMemoryUploadedFile # Create a file-like object to write thumb data (thumb data previously created# using PIL, and stored in variable 'thumb')thumb_io = StringIO.StringIO()thum..

업로드 처리

def upload(request): # GET일 경우 그냥 일반 페이지를 띄워준다. if request.method == "GET": edit_form = ImageEditForm() return render ( request, 'index.html', {'form': edit_form, } ) # POST일 경우는 실제로 ASYNC방식을 통해서 해야함. elif request.method == "POST": print (request.FILES.getlist('image_file')) print "POST" print (request.POST) print "FILES" print (request.FILES) for f in request.FILES.getlist('image_file'): print(..

Django Static 파일에 대한 고찰

장고에서 스태틱파일을 설정하는것은 완전 곤욕이다. 일단 파일이 다음과 같이 저장되어있다고 하자. 그리고 브라우저에는 다음과 같이 뜨면서 이미지가 나타나야 한다. 그런데 이런 상태는 settings.py 에 다음과 같은 설정이 되어있다. 즉 아무 설정이 안되어있다는 뜻이다. 즉 이미지 소스는 media라는 URL을 타고있으며 그 다음의 URL은 원래의 저장위치와 같다. 만약에 밑의 주석을 풀어서 ROOT를 설정해준다면 더이상 이미지는 나오지 않게 된다. 기본폴더로 아예 박아져 버렸기 때문이다. ROOT를 설정한다면 보안을 통로를 좁게해줘서 보안을 하는것이나 다름이 없다. 만약 ROOT를 설정한다면 이는 URL에서도 루트를 설정해주어야 한다. http://blog.hannal.com/2015/04/start..