Penafian: noob openCV yang sangat besar
Traceback (panggilan terakhir terakhir):
File "lanes2.py", line 22, in
canny = canny(lane_image)
File "lanes2.py", line 5, in canny
gray = cv2.cvtColor(imgUMat, cv2.COLOR_RGB2GRAY)
TypeError: Diharapkan cv::UMat untuk argumen 'src'
Apa sebenarnya 'src' yang dimaksud?
src
adalah argumen pertama untuk cv2.cvtColor
.
Kesalahan yang Anda dapatkan adalah karena bentuknya tidak tepat. cv2.Umat()
secara fungsional setara dengan np.float32()
, sehingga baris terakhir kode Anda seharusnya terbaca:
gray = (np.float32(imgUMat), cv2.COLOR_RGB2GRAY)
gray = cv2.cvtColor(cv2.UMat(imgUMat), cv2.COLOR_RGB2GRAY)
UMat adalah bagian dari Transparent API (TAPI) daripada membantu menulis satu kode untuk implementasi CPU dan OpenCL.
Apakah canny
adalah fungsi anda sendiri? Apakah anda menggunakan Canny dari OpenCV di dalamnya? Jika ya, periksa apakah anda memberikan argumen yang sesuai untuk Canny
- argumen Canny
pertama harus memenuhi kriteria berikut:
<type 'numpy.ndarray'>
dtype('uint8')
bentuk
harus 2-tuple
dari int
(tuple
berisi tepat 2 bilangan bulat)Anda bisa memeriksanya dengan mencetak masing-masing
type(variable_name)
variable_name.dtype
variable_name.shape
Ganti nama_variabel
dengan nama variabel yang anda masukkan sebagai argumen pertama ke Canny
.