我的代码:
img = np.asarray(ibuffer).copy()
imgb = cv2.cvtColor(img, cv2.COLOR_BGR2Lab)
imgb[:,:,0] += bvalue
imgb = cv2.cvtColor(imgb,cv2.COLOR_LAB2BGR)
photo = Image.fromarray(imgb)
photo = resize(photo)
photo = ImageTk.PhotoImage(photo)
canvas.photo = photo
canvas.create_image(0,0,anchor="nw",image = photo)
我需要将'bvalue'变量的值添加到imgb(3D numpy数组)的第一维的所有元素中。尝试此操作时,出现以下错误消息:
Tkinter回调Traceback中的异常(最近一次调用最后一次):文件“ C:\ Users \ asaru \ AppData \ Local \ Programs \ Python \ Python39 \ lib \ tkinter_ init _.py”,行1884,在调用返回self.func( * args)文件“ e:\ My Files \ Project \ Image Editor \ Image Editor \ test.py”,第134行,明亮
imgb[:,:,0] += bvalue
numpy.core._exceptions._UFuncOutputCastingError:无法使用转换规则'same_kind'将ufunc'add'从dtype('<U3')输出转换为dtype('uint8')
您可以将int添加到numpy.uint8。如果将bvalue强制转换为int(并且假定bvalue是可以强制转换为int的值),则代码应该可以工作。
lab[:,:,0] += int(50.0)
上面的线用于加亮图像。请注意,由于通道是uint8,如果通道超过255,它将溢出。如果超过该通道,它将回绕并继续(255 + 11 = 10)。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句