如何使用OpenCV中的convertScaleAbs()函数?

cen*_*980 7 python opencv numpy computer-vision

我试图在应用索贝尔过滤后将图像转换回灰度。我有以下代码:

import numpy as np
import matplotlib.pyplot as plt
import cv2

image = cv2.imread("train.jpg")
img = np.array(image, dtype=np.uint8)

#convert to greyscale
img_grey = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)

#remove noise
img_smooth = cv2.GaussianBlur(img_grey, (13,13), 0)

sobely = cv2.Sobel(img_smooth,cv2.CV_64F,0,1,ksize=9)
Run Code Online (Sandbox Code Playgroud)

我想使用 ConvertScaleAbs() 函数将图像转换sobely回灰度。

我知道该函数采用源(要转换为灰度的图像)和目标数组作为参数,但我不确定创建目标数组的最佳方法是什么。

任何见解表示赞赏。

小智 5

你可以试试:

gray = cv2.convertScaleAbs(sobely, alpha=255/sobely.max())
plt.imshow(gray, cmap='gray')

Run Code Online (Sandbox Code Playgroud)