為了減少圖像信息的噪聲或者視覺效果,需要去除圖片周圍的白色邊框。
1. 使用matplotlib.pyplot顯示和保存沒有邊框的圖片;但是在很多情況下不work;
2. 使用圖片的RGB值判斷是否屬於邊框,再確定物體的位置,對閾值的更改可以去除白色、黑色、或者任何純色的邊框。
from skimage import io def corp_margin(img): img2=img.sum(axis=2) (row,col)=img2.shape row_top=0 raw_down=0 col_top=0 col_down=0 for r in range(0,row): if img2.sum(axis=1)[r]<700*col: row_top=r break for r in range(row-1,0,-1): if img2.sum(axis=1)[r]<700*col: raw_down=r break for c in range(0,col): if img2.sum(axis=0)[c]<700*row: col_top=c break for c in range(col-1,0,-1): if img2.sum(axis=0)[c]<700*row: col_down=c break new_img=img[row_top:raw_down+1,col_top:col_down+1,0:3] return new_img im = io.imread('test_blur2.jpg') img_re = corp_margin(im) io.imsave('result.png',img_re) io.imshow(img_re)