日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

Python 基于Rawpy 索尼A73 RAW文件转为JPG功能实现

發布時間:2024/3/13 python 47 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Python 基于Rawpy 索尼A73 RAW文件转为JPG功能实现 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
Python課程作業,因為不限方向,而且自己平時不會保存jpg文件,所以寫了這個自用的程序,可以實現RAW文件向JPG文件的批量轉換。

首先在程序中導入所需要的庫,例如:Tkinter、os、rawpy、imageio、numpy和Pillow的Image和ImageTk模塊。

然后定義一個convert_image()函數,它接受兩個參數:一個輸入文件路徑和一個輸出文件路徑。函數使用rawpy庫讀取RAW格式圖像文件,將其轉換為numpy數組,然后將numpy數組轉換為PIL Image對象。接著,對圖像進行一些處理,如銳化和亮度和對比度增強。最后,函數將PIL Image對象轉換為numpy數組,并將其保存為JPEG格式圖像文件。

然后定義一個convert_folder()函數,它接受一個文件夾路徑作為參數。函數使用os模塊遍歷文件夾中的所有.arw文件,并調用convert_image()函數將它們轉換為JPEG格式圖像。

然后創建一個Tkinter窗口,并設置窗口的標題和大小。在倉庫中創建一個文件選擇按鈕,用于選擇要轉換的文件夾。

再創建一個用于顯示轉換后圖像的面板,由于原圖的比例是3:2,因此窗口的尺寸為600×400。

創建一個轉換按鈕,并綁定它的事件,調用convert_folder()函數并傳入選擇的文件夾路徑。最后運行窗口,并且等待用戶進行操作。

import tkinter as tk from tkinter import filedialog import os import rawpy import imageio import numpy as np from PIL import Image, ImageEnhance, ImageFilter, ImageTkdef convert_image(file_path, output_path):# 使用rawpy打開文件并轉換為numpy數組with rawpy.imread(file_path) as raw:raw_image = raw.postprocess()# 轉換numpy數組為PIL Image對象pil_image = Image.fromarray(raw_image)# 對圖像進行銳化pil_image = pil_image.filter(ImageFilter.SHARPEN)# 對圖像進行亮度和對比度增強enhancer = ImageEnhance.Brightness(pil_image)pil_image = enhancer.enhance(1.0)enhancer = ImageEnhance.Contrast(pil_image)pil_image = enhancer.enhance(1.2)# 轉換PIL Image對象為numpy數組np_image = np.asarray(pil_image)# 將numpy數組轉換為jpg格式并保存到用戶選擇的輸出路徑和文件名if output_path:imageio.imwrite(output_path, np_image, format='jpg')# 在窗口中顯示轉換后的圖像img = Image.open(output_path)img = img.resize((600, 400))img = ImageTk.PhotoImage(img)panel.configure(image=img)panel.image = imgdef convert_folder(folder_path):# 循環遍歷文件夾中的所有.arw文件,并進行轉換for file_name in os.listdir(folder_path):# 如果文件擴展名不是".arw",則跳過if not file_name.lower().endswith('.arw'):continue# 構造完整的文件路徑file_path = os.path.join(folder_path, file_name)# 構造輸出文件路徑和文件名output_path = os.path.splitext(file_path)[0] + '.jpg'# 調用轉換函數convert_image(file_path, output_path)# 創建窗口 window = tk.Tk() window.title("ARW Converter") window.geometry("500x500")# 創建文件選擇按鈕 button = tk.Button(window, text="選擇文件夾", command=lambda: convert_folder(filedialog.askdirectory())) button.pack()# 創建顯示圖像的面板 panel = tk.Label(window) panel.pack()# 創建轉換按鈕 convert_button = tk.Button(window, text="轉換") convert_button.pack()# 綁定轉換按鈕事件,調用convert_folder函數 convert_button.config(command=lambda: convert_folder(filedialog.askdirectory()))# 運行窗口 window.mainloop()

總結

以上是生活随笔為你收集整理的Python 基于Rawpy 索尼A73 RAW文件转为JPG功能实现的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。