【----Python图像读取查看2D----】【----20181218----】


PIL(Pillow)

左上角是坐标原点。
基于PILImage格式转灰度。
PIL使用ImageFilter可以简单做到图像的模糊、边缘增强、锐利、平滑等常见操作。

  • 读取

      from PIL import Image
      读图方式 -> open(r'..\\----.jpg') # 读取为Image格式
      保存图片 -> img.save(r'..\\----.jpg')
      查看图像 -> img.show() # 调用系统默认图像查看软件,不支持numpy
      查看图像大小 ->img.size # (1920, 1080)
      缩放 -> img.resize()
    
  • 读图-查看-保存

      from PIL import Image
    
      img_path = r"C:\Users\Mint\Desktop\零散\202a492ab1463c906a4bb965ad24d566.jpg"
      img = Image.open(img_path)
      # img  = img .convert('L') # 转灰度
      size = img.size
      print('size',size) # (1920, 1080)
      img_crop = img.crop((750, 200, 1170, 1080)) # (x_start,y_start,x_end,y_end)
      img_crop_resize = img_crop.resize((100,200))
      img_crop.save(r'C:\Users\Mint\Desktop\202a492ab1463c906a4bb965ad24d566.jpg')
      img_crop.show() # 调用系统默认图像查看软件
    
  • Image和numpy转换

      img_array = np.asarray(img)
      img = Image.fromarray(img_array)
    

OpenCV

左上角是坐标原点。
可以将图像按照色域进行处理。
对图像做采样插值、边缘检测、形态学等处理。

  • 读取

      import cv2
      读图方式 -> cv2.imread(img_path) # 读进来直接是numpy格式
      查看图像 -> cv2.imshow('img', img_array) # 格式需numpy,tensor报错
      保存图片 -> cv2.imwrite("...\\----.jpg",img_array) 
    
  • 读取-查看-鼠标交互输出像素值与坐标-保存

      import cv2
      import numpy as np
      img_path = 'C:\\Users\\Mint\\Desktop\\90e58f36fc1b0ae42443b69176cc2a75_r.jpg'
      
      img_array = cv2.imread(img_path) 
      # img_array = img_array*255 # (反色调)变换后像素值 = 256 - 变换前像素值
      img_array= cv2.cvtColor(img_array, cv2.COLOR_BGR2GRAY) # 转为灰度图
      # img_array = np.where(img_array>100,255.0,0) # 必须是255.0,255显示全黑
    
      print(type(img_array)) 
      print(img_array.shape) # (128,128,3)
    
      def onmouse(event, x, y, flags, param):
          if event==cv2.EVENT_LBUTTONDOWN:
              print(img_array[y,x],[x,y]) # 像素值 坐标
      cv2.namedWindow('img_array')
      cv2.setMouseCallback("img_array", onmouse)
      
      cv2.imshow('img_array', img_array) # 'img_array'必须保持一致
      cv2.waitKey(0)
      cv2.destroyAllWindows()
      cv2.imwrite('C:\\Users\\Mint\\Desktop\\90e58f36fc1b0a.jpg',img_array)
    

matplotlib

左上角是坐标原点。
显示图片同时能随鼠标直接显示像素值及坐标。

  • 读取

      import matplotlib.pyplot as plt # 用于显示图片
      import matplotlib.image as mpimg # 用于读取图片
      读图方式 -> mpimg.imread(img_path) # 读进来直接是numpy格式
      查看图像 -> plt.imshow(img_array)
      保存图像 -> plt.imsave("...\\----.jpg",img_array)
      		  -> mpimg.imsave("...\\----.jpg",img_array)
      保存显示 -> plt.savefig() # 必须在plt.show()前面
    
  • 读取-转灰度-显示(灰度)-保存(多种方法)

      import matplotlib.pyplot as plt
      import matplotlib.image as mpimg
      import numpy as np
      
      img_path = r'C:\Users\Mint\Desktop\psb.jpg'
      img_array = mpimg.imread(img_path)
      print('type',type(img_array)) # <class 'numpy.ndarray'>
      
      img_array = np.dot(img_array[...,:3], [0.299, 0.587, 0.114]) # RGB转灰度图
      # img_array = np.dot(img_array[:,:,:3], [0.299, 0.587, 0.114])
      print(img_array.shape)
      img_array = np.where(img_array>100,1,0)
      
      # plt.imshow(img_array) # 显示图片
      plt.imshow(img_array,cmap='Greys_r') # 灰度模式(基于灰度array)
      plt.axis('off') # 不显示坐标轴
      plt.savefig('psb_savefig.jpg') # 保存整个显示框
      plt.show()
      plt.imsave(r'C:\Users\Mint\Desktop\psb_plt.jpg',img_array)
      mpimg.imsave(r'C:\Users\Mint\Desktop\psb_mpimg.jpg',img_array) # 等价于上面方法,保存图像完全一致
    

skimage(scikit-image)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值