Cで書かれた共有ライブラリをすでに実行中のpythonアプリケーションに統合しようとしていました。そのために、単純な .so ファイルを作成し、共有ライブラリに記述された関数にアクセスしようとしました。
from ctypes import *
import cv2 as cv
import numpy as np
print cv.__version__
so= 'ContrastEnhancement.so'
lib = cdll.LoadLibrary(so)
image = cv.imread('python1.jpg')
image_data = np.array(image)
#calling shared lib function here
lib.ContrastStretch(image_data, width ,height, 5,10)
cv.imwrite("python_result.jpg", )
Traceback (most recent call last):
File "test1.py", line 21, in <module>
lib.ContrastStretch(image_data, width ,height, 5,10)
ctypes.ArgumentError: argument 1: <type 'exceptions.TypeError'>: Don't know how to convert parameter 1
私がこのように試した場合
lib.ContrastStretch(c_uint8(image_data), width ,height, 5,10)
TypeError: only length-1 arrays can be converted to Python scalars
今では共有ライブラリとは関係ないようですが、「Pythonで画像データ(配列)を使用する方法」
ありがとう