簡體   English   中英

從C ++使用OpenCV運行python腳本

[英]Run python script with opencv from C++

我正在嘗試從C ++執行python腳本,

C ++部分:

Py_Initialize();
PyRun_SimpleString("import sys");
PyRun_SimpleString("print(sys.version)");
PyRun_SimpleString("sys.path.append('/path/to/module')");
pName = PyString_FromString("mymodule");
pModule = PyImport_Import(pName);
import_array();
PyArrayObject *np_ret, *np_arg;
pDict = PyModule_GetDict(pModule);
pFunc = PyDict_GetItemString(pDict, "process");
PyObject_CallFunctionObjArgs(pFunc, NULL);

python模塊:

import random
import numpy as np
import cv2
import sys
import segno


def process():
  n = random.randint(1, 1000);
  qr = segno.make(n)
  mark = np.uint8(np.array(qr.to_pil(scale=2)))*255
  mark = cv2.cvtColor(mark, cv2.COLOR_GRAY2RGB)

當我使用opencv 3.2.0編譯時,它可以正常工作,但使用2.4.0 ,在調用opencv函數cv2.cvtColor(mark, cv2.COLOR_GRAY2RGB)分段錯誤

2.4.0是否可以這樣做? 也許有一些模塊初始化程序,例如numpy的import_array()

語法在2.4處不同,因此請進行以下修改

mark = cv2.cvtColor(mark,mark, CV_GRAY2RGB)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM