Ich wickle die folgende C-Funktion mit SWIG 4.3: < /p>
einvoid AesAutoWhiteBalance_Balance(
const unsigned short* measurementsR,
const unsigned short* measurementsG,
const unsigned short* measurementsB,
const unsigned measureCount,
const unsigned bitWidth,
float* outR, float* outG, float* outB);
< /code>
Meine Swig -Schnittstellendateien folgen. Alle Messarrays haben übrigens die gleiche Größe.%module AesAutoWhiteBalance
%{
#define SWIG_FILE_WITH_INIT
#include "AesAutoWhiteBalance.h"
%}
// Include the NumPy typemaps
%include "numpy.i"
%init %{
import_array();
%}
// Wrap the AesAutoWhiteBalance_Balance function
%apply (unsigned short* IN_ARRAY1, unsigned int DIM1) {
(const unsigned short* measurementsR, const unsigned measureCount),
(const unsigned short* measurementsG, const unsigned measureCount),
(const unsigned short* measurementsB, const unsigned measureCount) };
%include "../include/AesAutoWhiteBalance.h"
< /code>
Hier ist der Python-Code, der zum Fehler führt: < /p>
# Open the image
img = Image.open(image_path)
# Convert the image to RGB mode (if not already in RGB mode)
img = img.convert('RGB')
# Convert the image into a numpy array
img_array = np.array(img).astype(np.uint16)
# Define the identity matrix (Unity matrix)
identity_matrix = np.eye(3).astype(np.float32)
arrayLength = img.height * img.width
red = img_array[:, :, 0].flatten()
green = img_array[:, :, 1].flatten()
blue = img_array[:, :, 2].flatten()
AesAutoWhiteBalance_Balance(
red,
green,
blue,
arrayLength,
8,
identity_matrix[0][0],
identity_matrix[1][1],
identity_matrix[2][2]
)
< /code>
Kompilierung und Installation funktionieren hervorragend, aber wenn ich versuche, ein Numpy -Array an diese Funktion zu übergeben, erhalte ich ein Typeerror: < /p>
TypeError: in method 'AesAutoWhiteBalance_Balance', argument 1 of type 'unsigned short const *'
< /code>
Ich stelle sicher, dass das Bild in UINT16 konvertiert wird, aber der Fehler tritt direkt beim ersten Argument auf. Ich habe die Swig -Mapping des Arrays mit anderen Themen überprüft, in denen Menschen ähnliche Probleme hatten, aber es scheint, dass mein Swig -Fall ziemlich einzigartig ist. Ich schätze Ihre Eingabe!
TypeError beim Übergeben von Numpy Array an C -Funktion, die mit SWIG eingewickelt ist ⇐ Python
-
- Similar Topics
- Replies
- Views
- Last post