日本免费高清视频-国产福利视频导航-黄色在线播放国产-天天操天天操天天操天天操|www.shdianci.com

學無先后,達者為師

網站首頁 編程語言 正文

python-opencv如何讀取圖片及尺寸修改_python

作者:ithicker ? 更新時間: 2022-12-26 編程語言

python-opencv讀取圖片及尺寸修改

修改圖像尺寸大小

使用shape可得到圖片的尺寸信息,寬度及高度和通道數,道數問題描述一個像素點,如果是灰度,那么只需要一個數值來描述它,就是單通道,如果有RGB三種顏色,就是三通道

import cv2
img=cv2.imread('1.jpg')
print(img.shape)
res=cv2.resize(img,(126,126))#修改圖像尺寸
cv2.imshow('new_img',res)#顯示新圖像
cv2.imshow('img',img)#依舊顯示原始圖像,進行對比
#cv2.imwrite('new_img_path',res)
cv2.waitKey(0)
cv2.destoryAllWindows()

使用opencv進行圖片批量修改尺寸

這幾天接到公司設計方面的需求,需要將幾十張圖片統一修改為固定的尺寸(1080*1080),其實通過ps動作批處理可以完成。但是如果沒有安裝ps咋辦嘞?或者懶得打開ps,可以考慮通過pyhton快速處理

注意事項

  • 存在圖片為長方形或者正方形的情況
  • 存在圖片格式的差異化

方法如下

import cv2
import os

outtype = '.png'  #   <---------- 輸出的統一格式
image_size_h =0
image_size_w = 300  #  <---------- 設定長
source_path = "E:\\domo\\pic"+"\\"  #  <---------- 源文件路徑
target_path = "E:\\domo\\newdomo"+"\\"  #  <---------- 輸出目標文件路徑
 
if not os.path.exists(target_path):
    os.makedirs(target_path)
 
image_list = os.listdir(source_path)  # 獲得文件名
 
i = 0
for file in image_list:
    i = i + 1
    image_source = cv2.imread(source_path + file)  # 讀取圖片d
    print("處理中-->",file)
    if image_source.shape[0] == image_source.shape[1]:    #圖片是正方形
        image_size_h = image_size_w
        image = cv2.resize(image_source, (image_size_w, image_size_h), 0, 0, cv2.INTER_LINEAR)  # 修改尺寸
        # cv2.imwrite(target_path + str(i) + outtype, image)  # 重命名并且保存 (統一圖片格式)
        cv2.imwrite(target_path + str(file),image)  # 保留原命名
    else:   #圖片是非方形
        sizenum = image_source.shape[0]/image_source.shape[1]
        image_size_h =sizenum * image_size_w 
        image = cv2.resize(image_source, (image_size_w, int(image_size_h)), 0, 0, cv2.INTER_LINEAR)  # 修改尺寸
        # cv2.imwrite(target_path + str(i) + outtype, image)  # 重命名并且保存 (統一圖片格式)
        cv2.imwrite(target_path + str(file),image) # 保留原命名
print("批量處理完成")

原文鏈接:https://blog.csdn.net/lockhou/article/details/116126392

欄目分類
最近更新