免責事項:巨大なopenCV noob
トレースバック(最新の呼び出しが最後):
ファイル "lanes2.py"、22行目、
canny = canny(lane_image)
Cannyのファイル "lanes2.py"、5行目
gray = cv2.cvtColor(imgUMat, cv2.COLOR_RGB2GRAY)
TypeError:引数 'src'にはcv :: UMatが必要です
「src」は正確には何を指しているのですか?
src
は_cv2.cvtColor
_の最初の引数です。
あなたが得ているエラーはそれが正しい形式ではないためです。 cv2.Umat()
はnp.float32()
と機能的に同等であるため、コードの最終行は次のようになります。
_gray = (np.float32(imgUMat), cv2.COLOR_RGB2GRAY)
_
gray = cv2.cvtColor(cv2.UMat(imgUMat), cv2.COLOR_RGB2GRAY)
UMatは Transparent API(TAPI) の一部であり、CPUおよびOpenCL実装用の1つのコードを記述するのに役立ちます。
以下は、numpy
から使用できます。
import numpy as np
image = np.array(image)
あなたのコードが問題ではなく、これは完全に問題ありません:
gray = cv2.cvtColor(imgUMat, cv2.COLOR_RGB2GRAY)
問題は、imgUMatがNone
であることです。そのため、イメージのロード時におそらく間違いを犯しました。
imgUMat = cv2.imread("your_image.jpg")
入力した画像パスが間違っているようです。
canny
はあなた自身の関数ですか?その中でOpenCVの Canny を使用していますか?はいの場合、Canny
の適切な引数をフィードするかどうかを確認します-最初のCanny
引数は、次の基準を満たしている必要があります。
<type 'numpy.ndarray'>
_dtype('uint8')
shape
は2 -Tuple
でなければなりませんint
s(Tuple
はちょうど2つの整数を含む)それぞれ印刷して確認できます
_type(variable_name)
variable_name.dtype
variable_name.shape
_
_variable_name
_をCanny
の最初の引数としてフィードする変数の名前に置き換えます。
imstreams パッケージの videostream がフレームを認識しない、または空のフレームを提供しない場合、このエラーが発生することがあります。その場合、解決策は、そのような不良フレームがある理由、またはopencv2の標準のVideoCapture(0)メソッドを使用する理由を理解することです。
これを最初に追加するだけです:image = cv2.imread(image)
私はファイルへの書き込み/読み取りによって気が狂った。私はcv.imreadがそれを必要なフォーマットに入れると思いました。 anki Vector SDKプログラム用のこのコードですが、アイデアはわかります。
tmpImage = robot.camera.latest_image.raw_image.save( 'temp.png')
pilImage = cv.imread( 'temp.png')
これは一般的なエラーであり、使用するデータのタイプ間にmismatchがある場合にスローされます。たとえば、opencvで画像のサイズを変更しようとすると、同じエラーが発生しました。 ここ はそれについての議論です。
しかし、これをcifar-10でどのように行うのですか?私はファイルを読み込んでhsvに変換しようとしていますが、機能しません。同じ間違いを私に与えた:」
Elif self.type == 'cifar-10':data = [] labels = [] print( "Reading")for file_ in tqdm(listdir(self.root_dir)):if file_.split( ' _ ')[0] ==' data ':dict = unpickle(join(self.root_dir、file_))data.extend(dict [b'data'])labels.extend(dict [b'labels '])data = cv2。 cvtColor(data、cv2。COLOR_RGB2HSV) '' '