前提
pythonでopencvを使用した画像編集用システムを作っています。
ガンマ変換を行う機能を実装中に以下のエラーメッセージが発生しました。
pythonを使用し始めたばかりのため不自然な部分も多いかと思いますがよろしくお願いいたします。
- スライダーを使用し読み込んだ画像を、リアルタイムで編集されることを目的としております。
発生している問題・エラーメッセージ
Exception in Tkinter callback Traceback (most recent call last): File "C:\Users\wbnw\AppData\Local\Programs\Python\Python311\Lib\tkinter\__init__.py", line 1948, in __call__ return self.func(*args) ^^^^^^^^^^^^^^^^ File "c:\Users\wbnw\OneDrive\デスクトップ\works\name\Python\take_system.py", line 97, in Gnm nim = cv2.cvtColor(tim2, cv2.COLOR_RGB2BGR) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ cv2.error: OpenCV(4.7.0) :-1: error: (-5:Bad argument) in function 'cvtColor' > Overload resolution failed: > - src is not a numpy array, neither a scalar > - Expected Ptr<cv::UMat> for argument 'src'
該当のソースコード
python
1import cv2 2import tkinter as tk 3from tkinter import filedialog 4import numpy as np 5from PIL import Image, ImageTk 6import math 7 8img = cv2.imread('pic/takeshi.jpg') 9 10rim = cv2.cvtColor(Img, cv2.COLOR_BGR2RGB) 11pim = Image.fromarray(rim) 12tim = ImageTk.PhotoImage(pim) 13rim2 = cv2.cvtColor(Img2, cv2.COLOR_BGR2RGB) 14pim2 = Image.fromarray(rim2) 15tim2 = ImageTk.PhotoImage(pim2) 16 17Gim = np.zeros((256,1),dtype=np.uint8) 18def Gnm(event=None): 19 global tim2 20 global nim 21 nim = cv2.cvtColor(tim2, cv2.COLOR_RGB2BGR) 22 while(1): 23 gamma = num02.get() 24 for i in range(256): 25 Gim[i][0] = 255 * (float(i)/255) ** (1.0 /gamma) 26 gim = cv2.LUT(nim, Gim) 27 cvs2.create_image(0, 0, image=gim, anchor=tk.NW) 28 29 k = cv2.waitKey(1) 30 if k == 27: 31 break 32 33sfr.bind("<Enter>", Gnm) 34 35num02 =tk.IntVar() 36num02.set(0) 37 38root = tk.Tk() 39root.title("TestPage") 40root.geometry("1920x1080+50+50") 41 42sfr = tk.Frame(root, relief=tk.FLAT, bg="white" , bd=2) 43sfr.place(x=1110, y=530, width=500, height=510) 44 45scl2 = tk.Scale(sfr, variable=num02, orient='horizontal', length=475, from_=0, to=5, resolution=0.1, command=Gnm) 46scl2.place(x=5, y=85) 47 48root.mainloop() 49cv2.waitKey(0) 50cv2.destroyAllWindows()
試したこと
trackbarやPLT等は試しましたが最終的な完成イメージと異なったため使用しておりません。
また、ソースコードに関してはガンマ変換部分のみ記載しています。
補足情報(FW/ツールのバージョンなど)
Python3.11.1 64-bit

回答2件
あなたの回答
tips
プレビュー