zoukankan      html  css  js  c++  java
  • python调用c++接口,参数为opencv读取数据

    opencvcall.cpp

    #include <opencv2/opencv.hpp>
    
    using namespace cv;
    
    extern "C"
    {
        void test(int height, int width, int channel, uchar* frame_data)
        {
            int count = 0;
            Mat image(height, width, CV_8UC3);
            memcpy(image.data, frame_data, sizeof(uchar) * width * height * channel);
            imwrite("result.jpg", image);
    
            return;
        }
    }

    CMakeLists.txt

    cmake_minimum_required(VERSION 2.8)
    
    set(PROJECT_NAME test)
    set(OPENCV_INSTALL_PTH /home/packages/opencv/)
    
    INCLUDE_DIRECTORIES(${OPENCV_INSTALL_PTH}/include)
    list(APPEND LINK_FILES ${OPENCV_INSTALL_PTH}/lib/libopencv_imgproc.so)
    list(APPEND LINK_FILES ${OPENCV_INSTALL_PTH}/lib/libopencv_imgcodecs.so)
    list(APPEND LINK_FILES ${OPENCV_INSTALL_PTH}/lib/libopencv_core.so)
    list(APPEND LINK_FILES ${OPENCV_INSTALL_PTH}/lib/libopencv_tracking.so)
    list(APPEND LINK_FILES ${OPENCV_INSTALL_PTH}/lib/libopencv_tracking.so)
    list(APPEND LINK_FILES ${OPENCV_INSTALL_PTH}/lib/libopencv_highgui.so)
    list(APPEND LINK_FILES ${OPENCV_INSTALL_PTH}/lib/libopencv_videoio.so)
    
    aux_source_directory(src DIR_SRCS)
    MESSAGE(STATUS "Src file: ${DIR_SRCS}")
    
    #set(CMAKE_CXX_FLAGS_RELEASE "-w -O3 -std=c++11")
    #set(CMAKE_CXX_FLAGS_DEBUG "-w -g -std=c++11")
    
    add_library(${PROJECT_NAME} SHARED ${DIR_SRCS})
    target_link_libraries(${PROJECT_NAME} ${LINK_FILES})

    test.py

    import cv2
    import ctypes
    import numpy as np
    
    ll = ctypes.cdll.LoadLibrary
    lib = ll("./build/libtest.so")
    lib.test.restype = ctypes.c_float
    frame = cv2.imread('image/test.jpg')
    frame_data = np.asarray(frame, dtype=np.uint8)
    frame_data = frame_data.ctypes.data_as(ctypes.c_char_p)
    lib.test(frame.shape[0], frame.shape[1], frame.shape[2], frame_data)
  • 相关阅读:
    隔离级别 && SNAPSHOT
    多态性&& 虚函数 && 抽象类
    socket编程
    [APIO2015]巴邻旁之桥
    LuoguP3701 「伪模板」主席树
    线段树标记永久化
    [HNOI2015]开店
    NOIP2017划水记
    FFTNTT总结
    [THUWC 2017]在美妙的数学王国中畅游
  • 原文地址:https://www.cnblogs.com/haiyang21/p/12268319.html
Copyright © 2011-2022 走看看