Einige OpenCV-Funktionen haben Einschränkungen hinsichtlich der Art der Eingabedaten. Bei der Ausführung der Funktion cv2. Function () in Python kann ein Fehler auftreten, der auf einen Fehler bei der Angabe der Tiefe des Eingabedatentyps und der Ausgabedatentiefe zurückzuführen ist. In der Fehlermeldung werden Werte wie cv2.CV_8U als Ganzzahlen angezeigt. Daher bin ich verwirrt, wie der Eingabedatentyp lauten soll und wie die Tiefe der Ausgabedatentiefe angegeben werden soll. Ich habe etwas zu tun.
Ebenso kann das Erstellen aus dem Quellcode der cv :: function () in C ++ fehlschlagen.
Ich werde eine Notiz machen, um den gleichen Fehler nicht zu wiederholen.
dilate(...) dilate(src, kernel[, dst[, anchor[, iterations[, borderType[, borderValue]]]]]) -> dst
function | CV_8U | CV_8S | CV_16U | CV_16S | CV_32S | CV_32F | CV_64F |
---|---|---|---|---|---|---|---|
Wert | 0 | 1 | 2 | 3 | 4 | 5 | 6 |
np.dtype | uint8 | int8 | uint16 | int16 | int32 | float32 | float64 |
cv2.dilate() | o | x | o | o | x | o | o |
cv2.erode() | o | x | o | o | x | o | o |
connectedComponentsWithStats() input | o | x | x | x | x | x | x |
connectedComponentsWithStats() labels | x | x | o | x | o | x | x |
connectedComponentsWithStats() stats | x | x | x | x | o | x | x |
connectedComponentsWithStats() centroids | x | x | x | x | x | x | o |
function | CV_8U | CV_8S | CV_16U | CV_16S | CV_32S | CV_32F | CV_64F |
---|---|---|---|---|---|---|---|
np.dtype | uint8 | int8 | uint16 | int16 | int32 | float32 | float64 |
cv2.Sobel() src | o | x | o | o | x | o | o |
cv2.Sobel() dst | o | x | o | o | x | o | o |
cv2.blur() src | o | x | o | o | o | o | o |
GaussianBlur() src | o | x | o | o | x | o | o |
filter2D() src | o | x | o | o | x | o | o |
cartToPolar() src | x | x | x | x | x | o | o |
polarToCart() src | x | x | x | x | x | o | o |
magnitude() src | x | x | x | x | x | o | o |
phase() src | x | x | x | x | x | o | o |
cv2.sqrt() src | x | x | x | x | x | o | o |
cvtColor() | o | x | o | x | x | o | x |
Ich habe die Kombination noch nicht vollständig überprüft.
Sobel(...) Sobel(src, ddepth, dx, dy[, dst[, ksize[, scale[, delta[, borderType]]]]]) -> dst
Sobel-Kombination Eingabebild src Typ: vertikale Achse Bestimmt die Art der Ausgabebildtiefe: Horizontale Achse
CV_8U | CV_8S | CV_16U | CV_16S | CV_32S | CV_32F | CV_64F | |
---|---|---|---|---|---|---|---|
np.uint8 | o | x | o | o | x | o | o |
np.int8 | x | x | x | x | x | x | x |
np.uint16 | o | x | o | o | x | o | o |
np.int16 | o | x | o | o | x | o | o |
np.int32 | x | x | x | x | x | x | x |
np.float32 | o | x | o | o | x | o | o |
np.float64 | o | x | o | o | x | x | o |
Kombination von cv2.filter2D (np.array (orgImg, dtype = npt), ddepth, kernel) Eingabebild src Typ: vertikale Achse Bestimmt die Art der Ausgabebildtiefe: Horizontale Achse
CV_8U | CV_8S | CV_16U | CV_16S | CV_32S | CV_32F | CV_64F | |
---|---|---|---|---|---|---|---|
np.uint8 | o | x | o | o | x | o | o |
np.int8 | x | x | x | x | x | x | x |
np.uint16 | x | x | o | x | x | o | o |
np.int16 | x | x | x | o | x | o | o |
np.int32 | x | x | x | x | x | x | x |
np.float32 | x | x | x | x | x | o | x |
np.float64 | x | x | x | x | x | x | o |
function | CV_8U | CV_8S | CV_16U | CV_16S | CV_32S | CV_32F | CV_64F |
---|---|---|---|---|---|---|---|
np.dtype | uint8 | int8 | uint16 | int16 | int32 | float32 | float64 |
cv2.threshold() src | o | o | x | x | x | o | x |
cv2.floodFill() src | o | o | x | x | x | o | x |
function | CV_8U | CV_8S | CV_16U | CV_16S | CV_32S | CV_32F | CV_64F |
---|---|---|---|---|---|---|---|
np.dtype | uint8 | int8 | uint16 | int16 | int32 | float32 | float64 |
cv2.Canny() src | o | o | x | x | x | x | x |
cv2.HoughLines()src binäres Bild | o | ? | x | x | x | x | x |
cv2.HoughCircles()src binäres Bild | o | ? | x | x | x | x | x |
# -*- coding: utf-8 -*-
u"""OpenCV cv::Überprüfen Sie den Mat-Typ in Python
"""
import cv2
print cv2.CV_8U
print cv2.CV_8S
print cv2.CV_16U
print cv2.CV_16S
print cv2.CV_32S
print cv2.CV_32F
print cv2.CV_64F
Recommended Posts