各种语言的示例

  1. 各种语言的示例
    1. C语言
    2. C++
    3. Python
    4. OpenCV
    5. ncnn
      1. opencv-demo.cpp
      2. CMakeLists.txt
    6. ncnn OpenCV
      1. ncnndemo.cpp
      2. CMakeLists.txt

各种语言的示例

这里存放着各种语言的最小代码

C语言

1
2
3
4
5
6
7
8
#include <stdio.h>

int main()
{
printf("Program Language C\r\n");
printf("Smile With You!!!\r\n");
return 0;
}

C++

1
2
3
4
5
6
7
8
9
#include <iostream>
using namespace std;

int main()
{
cout << "Program Language C++" << endl;
cout << "Smile With You!!!" << endl;
return 0;
}

Python

1
2
print("Program Language Python")
print("Smile With You!!!")

OpenCV

文件名称opencv-demo.cpp

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include <iostream>  
#include <opencv2/opencv.hpp>
#include <opencv2/imgcodecs.hpp>
#include <opencv2/highgui.hpp>

using namespace std;
using namespace cv;

int main()
{
Mat img = cv::imread("aaa.jpg");
cout << "OpenCV Demo" << endl;
imshow("img", img);
waitKey(0);
}

文件名称CMakeLists.txt

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
# 指定平台最小版本
cmake_minimum_required(VERSION 2.8)
# 项目名称
project(learn-opencv)

# 设置变量的值
set(SOURCES
opencv-demo.cpp
)

set(HEADERS
#opencv-demo.hpp
)

# 生成可执行文件
add_executable(OpenCV-Demo
${SOURCES}
${HEADERS}
)

set(OpenCV_DIR "/opt/opencv-4.5.5")

# 查找指定的库文件
find_package(OpenCV 4.5.5 REQUIRED)
if(OpenCV_FOUND)
# 链接库搜索目录
target_include_directories(OpenCV-Demo PUBLIC ${OpenCV_INCLUDE_DIRS})
# 目标库需要链接的库
target_link_libraries(OpenCV-Demo ${OpenCV_LIBS})

endif()

编译使用

1
2
3
cmake .
make
./OpenCV-Demo

ncnn

opencv-demo.cpp

1
2
3
4
5
6
7
8
9
10
11
12
#include <iostream>  
#include "ncnn/net.h"

using namespace std;

int main()
{
Mat img = cv::imread("aaa.jpg");
cout << "OpenCV Demo" << endl;
imshow("img", img);
waitKey(0);
}

CMakeLists.txt

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
# -----0、版本设置-----
cmake_minimum_required (VERSION 2.6)

# -----1、参数设置-----
# 项目名称
set(PROJECT_NAME wncnn)
# 版本号
set(Tutorial_VERSION_MAJOR 1)
set(Tutorial_VERSION_MINOR 0)
# 源码文件
set(
SOURCEFILE
ncnndemo.cpp
)
# 头文件
set(
INCLUDEFILE
)
set(NCNN_PATH /home/smile/lib/ncnn-20230517-smile/build-ubuntu18/install)
# -----2、项目名称-----
project(${PROJECT_NAME})

# -----3、代码文件操作-----

# -----4、头文件引用-----
#include_directories(${PROJECT_BINARY_DIR})
include_directories(${NCNN_PATH}/include)

# -----5、静态库引用-----
#link_directories(${NCNN_PATH}/lib/libncnn.a)

# -----6、编译程序-----
add_executable(${PROJECT_NAME} ${SOURCEFILE})

# -----7、动态库引用-----
# 查找指定的库文件 下面两种方式选一种
#set(ncnn_DIR ${NCNN_PATH}/lib/cmake/ncnn) # ncnnConfig.cmake 的路径
list(APPEND CMAKE_PREFIX_PATH ${NCNN_PATH}) # ncnn安装的路径
find_package(ncnn REQUIRED)

target_link_libraries(${PROJECT_NAME} PRIVATE ncnn)

ncnn OpenCV

ncnndemo.cpp

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
#include "ncnn/net.h"
#include "stdio.h"
#include <opencv2/core/core.hpp>
#include <opencv2/highgui/highgui.hpp>

int main(int argc, char** argv)
{
// 打开图片
cv::Mat img = cv::imread("aaa.jpg");
// 建立模型并导入模型结构和参数
ncnn::Net model;
if (model.load_param("squeezenet_v1.1.param"))
exit(-1);
if (model.load_model("squeezenet_v1.1.bin"))
exit(-1);
// 导入数据
ncnn::Mat in = ncnn::Mat::from_pixels_resize(img.data, ncnn::Mat::PIXEL_BGR, img.cols, img.rows, 227, 227);
// 数据预处理
const float mean_vals[3] = {104.f, 117.f, 123.f};
in.substract_mean_normalize(mean_vals, 0);
// 创建计算图 模型推理
ncnn::Extractor ex = model.create_extractor();
ex.input("data", in);
ncnn::Mat out;
ex.extract("prob", out);
// 打印输出形状
printf("Out w-h-c %d %d %d\r\n", out.w, out.h, out.c);
printf("Smile With Yout\r\n");
}

CMakeLists.txt

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
# -----0、版本设置-----
cmake_minimum_required (VERSION 2.6)

# -----1、参数设置-----
# 1.0、设置变量
set(NCNN_PATH /home/smile/lib/ncnn-20230517-smile/build-ubuntu18/install)
set(OpenCV_DIR "/opt/opencv-4.5.5")
# 1.1、项目名称
set(PROJECT_NAME wncnn)
# 1.2、版本号
set(Tutorial_VERSION_MAJOR 1)
set(Tutorial_VERSION_MINOR 0)
# 1.3、源码文件
set(
SOURCEFILE
ncnndemo.cpp
)
# 1.4头文件
set(
INCLUDEFILE
)
# -----2、项目名称-----
project(${PROJECT_NAME})

# -----3、代码文件操作-----

# -----4、头文件引用-----
# ---> ncnn
include_directories(${NCNN_PATH}/include)
# ---> OpenCV
include_directories(${OpenCV_DIR}/include)
include_directories(${OpenCV_DIR}/include/opencv4)
include_directories(${OpenCV_DIR}/include/opencv4/opencv2)

# -----6、编译程序-----
add_executable(${PROJECT_NAME} ${SOURCEFILE})

# -----7、动态库引用-----
# ---> OpenCV
set(OpenCV_DIR "/opt/opencv-4.5.5")
find_package(OpenCV 4.5.5 REQUIRED)
if(OpenCV_FOUND)
message(STATUS "OpenCV library: ${OpenCV_INSTALL_PATH}")
message(STATUS " version: ${OpenCV_VERSION}")
message(STATUS " libraries: ${OpenCV_LIBS}")
message(STATUS " include path: ${OpenCV_INCLUDE_DIRS}")
# 链接库搜索目录
target_include_directories(${PROJECT_NAME} PUBLIC ${OpenCV_INCLUDE_DIRS})
# 目标库需要链接的库
target_link_libraries(${PROJECT_NAME} ${OpenCV_LIBS})
endif()

# ---> ncnn
# 查找指定的库文件 下面两种方式选一种
#list(APPEND CMAKE_PREFIX_PATH ${NCNN_PATH}) # ncnn安装的路径
set(ncnn_DIR ${NCNN_PATH}/lib/cmake/ncnn) # ncnnConfig.cmake 的路径
find_package(ncnn REQUIRED)
target_link_libraries(${PROJECT_NAME} ncnn)

微信:宏沉一笑
公众号:登山客

签名:Smile every day
名字:宏沉一笑
邮箱:whghcyx@outlook.com
个人网站:https://whg555.github.io



转载请注明来源,欢迎对文章中的引用来源进行考证,欢迎指出任何有错误或不够清晰的表达。可以在下面评论区评论,也可以邮件至 whghcyx@outlook.com

文章标题:各种语言的示例

文章字数:1.1k

本文作者:宏沉一笑

发布时间:2024-03-24, 17:57:55

最后更新:2024-03-24, 18:04:10

原始链接:https://whghcyx.gitee.io/2024/03/24/IT-2024-03-24-%E5%90%84%E7%A7%8D%E8%AF%AD%E8%A8%80%E7%9A%84%E7%A4%BA%E4%BE%8B/

版权声明: "署名-非商用-相同方式共享 4.0" 转载请保留原文链接及作者。

目录
×

喜欢就点赞,疼爱就打赏