問題記錄 | 記錄PIL中Image.save的一個坑


Image.save然后open數值是會變的

我找了一個下午終於找出問題所在,PIL的Image庫中把圖片resize了之后存在本地然后再讀進來,與直接resize后的數值是不一樣的。

data_val:
 [[[[175 104  78]
   [174 102  77]
   [178 106  81]

resize_progress: 
[[[175 104  78]
  [174 102  77]
  [178 106  81]
  ...

IMG_read_again resize_progress:
 [[[182 105  75]
  [182 105  75]
  [182 105  75]
  ...

數組太長了,只放一部分上博客。
函數寫成如下:

    def resize_img(self, img_path):
        dirname = os.path.dirname(img_path)
        img_basename=os.path.basename(img_path)
        tmp_dir = os.path.join(dirname,'resize/')
        if not os.path.exists(tmp_dir):
            os.makedirs(tmp_dir)
        img = Image.open(img_path)
        img = img.resize((self.img_row, self.img_col), Image.ANTIALIAS)
        print("resize_progress:",np.array(img))
        resize_img_path = os.path.join(tmp_dir,img_basename)
        img.save(resize_img_path)
        self.img_path = resize_img_path
        IMG_read_again = Image.open(resize_img_path)
        print("IMG_read_again resize_progress:\n",np.array(IMG_read_again))
        return resize_img_path


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM