2016-07-04 2 views
0

저는 caffe, sciki-image, opencv 및 matplotlib/pyplot을 사용하여 이미지 세분화 작업을하고 있습니다. 이 작업에는 이미지 크기 조정이 포함됩니다. 기본적으로 이미지를로드하고 크기를 조정 한 후 :matplotlib의 ax.fill()이 흰 여백을 만듭니다.

put_image = caffe.io.load_image(os.path.join(source_dir, pix) 
input_image = caffe.io.resize_image(input_image, (600,500), interp_order=3) 

나는 꽤 많은 처리를합니다. 이

fig.savefig(save_dir + str(idx) + ".png", bbox_inches = 'tight') 

내가 얻을 저장 한 후 vald 일부 배열 및 image2입니다

fig, ax = plt.subplots(1, 1) 
ax.imshow(image2) 
... 
ax.fill(vald[:, 0], vald[:, 1], fill=False, color='red', linewidth=1) 

처리 input_image에서 일부 출력 : 나 이미지에 약간의 윤곽을 추가하기로 결정 때까지 모든 것이 잘 작동 원래 이미지의 자른 버전 인 본질적으로이 부분입니다.

enter image description here

당연히 나의 첫 번째 반응은 이미지를 자르고 나중에 크기를 조정하는 것이었지만 품질이 많이 떨어지는 것으로 나타났습니다 (해상도가 저하됨). 나는 herehere에서 다음 제안을 시도했지만 향상되지 않았습니다.

+0

축 한계가 변경된 것처럼 보입니다. 나는 그것이 (500, 600)까지 스패닝 된 (0,0)에 이미지를 두는 것 같지만 실제로 0 대신에 -100으로 시작하고있다.'ax.set_xlim ([0, 500])'와'ax.set_ylim ([0, 600])'(아마 ylim은 반전 된 y- 스케일 때문에 600, 0이되어야합니다 ...?) – pathoren

+0

좋은 제안이지만 왜 이미지가 회전합니까? – Alex

+0

확인 고마워, 많은 감사합니다! – Alex

답변

1

내 의견에 대한 후속 조치 : 축 제한이 변경되었습니다. 이미지는 (0,0)과 (500, 600) 사이의 직사각형에 있습니다. 그러나 x-와 y-lim은 정확히 그런 것이 아닙니다. 범위는 (-100, -100)에서 (500, 600)까지입니다. 주위의 흰색 프레임을 제거하려면 ax.set_xlim([0, 500])ax.set_ylim([600, 0])으로 한도를 업데이트하십시오.

참고 : 틱을 숨기려면 ax.set_xticks([])ax.set_yticks([])으로 쉽게 수행하거나 틱의 가시성을 False으로 설정하십시오.

+0

네, 두 번째 생각에 그것은 가장 분명한 것입니다 적) – Alex