網站首頁 編程語言 正文
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
相關推薦
- 2022-12-01 Apache?Doris?Colocate?Join?原理實踐教程_Linux
- 2022-10-16 Python實現自定義Jupyter魔法命令_python
- 2023-08-13 常見的linux命令
- 2022-10-24 C#中GDI+繪制圓弧及圓角矩形等比縮放的繪制_C#教程
- 2023-07-30 el-selete改變值后選中的內容不變
- 2022-11-21 C#基礎知識之字符串和正則表達式_C#教程
- 2022-09-29 C++模板的特化超詳細精講_C 語言
- 2022-12-21 Flutter?runApp到渲染上屏分析詳解_Android
- 最近更新
-
- window11 系統安裝 yarn
- 超詳細win安裝深度學習環境2025年最新版(
- Linux 中運行的top命令 怎么退出?
- MySQL 中decimal 的用法? 存儲小
- get 、set 、toString 方法的使
- @Resource和 @Autowired注解
- Java基礎操作-- 運算符,流程控制 Flo
- 1. Int 和Integer 的區別,Jav
- spring @retryable不生效的一種
- Spring Security之認證信息的處理
- Spring Security之認證過濾器
- Spring Security概述快速入門
- Spring Security之配置體系
- 【SpringBoot】SpringCache
- Spring Security之基于方法配置權
- redisson分布式鎖中waittime的設
- maven:解決release錯誤:Artif
- restTemplate使用總結
- Spring Security之安全異常處理
- MybatisPlus優雅實現加密?
- Spring ioc容器與Bean的生命周期。
- 【探索SpringCloud】服務發現-Nac
- Spring Security之基于HttpR
- Redis 底層數據結構-簡單動態字符串(SD
- arthas操作spring被代理目標對象命令
- Spring中的單例模式應用詳解
- 聊聊消息隊列,發送消息的4種方式
- bootspring第三方資源配置管理
- GIT同步修改后的遠程分支