基于OpenCV的图像处理程序设计实践

一.安装OpenCV3.x

bash 复制代码
# 安装依赖
sudo apt update
sudo apt install build-essential cmake git libgtk2.0-dev pkg-config libavcodec-dev libavformat-dev libswscale-dev

# 下载OpenCV源码
git clone https://github.com/opencv/opencv.git -b 3.4
cd opencv
mkdir build && cd build

# 编译安装
cmake -D CMAKE_BUILD_TYPE=Release -D CMAKE_INSTALL_PREFIX=/usr/local ..
make -j$(nproc)
sudo make install

下载好的文件里有以下内容

二.编译文件

c 复制代码
#include <opencv2/opencv.hpp>
using namespace cv;

int main() {
    Mat image = imread("test.jpg");  // 读取图片
    if (image.empty()) {
        printf("Image not found!\n");
        return -1;
    }
    Mat gray, blurred;
    cvtColor(image, gray, COLOR_BGR2GRAY);      // 转为灰度图
    GaussianBlur(image, blurred, Size(15, 15), 0); // 高斯模糊
    imshow("Original", image);
    imshow("Grayscale", gray);
    imshow("Blurred", blurred);
    waitKey(0);
    return 0;
}

gcc编译命令

bash 复制代码
g++ test1.cpp -o test1 `pkg-config --cflags --libs opencv`
#pkg-config --cflags opencv:输出OpenCV的 头文件路径(如-#I/usr/local/include/opencv4)。

#pkg-config --libs opencv:输出OpenCV的 库文件链接参数(如-lopencv_core -lopencv_highgui)。

#反引号 `:将命令的输出结果嵌入到g++命令中,自动填充路径和库名。

或Makefile 构建

bash 复制代码
CC = g++
CFLAGS = `pkg-config --cflags opencv`
LIBS = `pkg-config --libs opencv`
TARGET = test1
SRC = test1.cpp

all: $(TARGET)

$(TARGET): $(SRC)
	$(CC) $(CFLAGS) $< -o $@ $(LIBS)

clean:
	rm -f $(TARGET)

-------------------------------------
make      # 编译
./test1   # 运行
make clean  # 清理

或使用CMake 构建

最后效果:

三.总结

学习。

相关推荐
AIGC小尼3 分钟前
本地AI漫剧部署|低配8G显存实战部署MiniMax-H3|4步极速采样+低显存优化完整方案(可角色替换/视频魔改)
人工智能·stable diffusion·comfyui·ai漫剧
宿州派大星39 分钟前
[NLP实战] 基于PyTorch实现N-gram词嵌入模型:输入4个词预测第5个词
人工智能·pytorch·深度学习·nlp
qq_199886871 小时前
第8板块·第2节:统一内存的高级特性与性能调优
c++·人工智能·gpu算力·cuda
ting94520001 小时前
深度拆解Enter Pro AI原生开发平台:从底层架构到企业级落地技术实践
人工智能·架构·ai-native
lisw051 小时前
人工智能辅助科学的快与慢!
人工智能
9呀1 小时前
vscode如何打开多个codex标签页
人工智能
todoitbo1 小时前
本地图库语义搜索实战:接上蓝耘元生代,让“傍晚的海边“能搜到图
人工智能·ai·api·工具实战
羊羊小栈1 小时前
基于「YOLO目标检测 + 多模态AI分析」的水稻病害智能检测分析预警系统(LangChain框架)
人工智能·yolo·目标检测·毕业设计·创业创新·大作业
IT_陈寒1 小时前
Vue的响应式让我熬到凌晨三点,原来漏了这个小细节
前端·人工智能·后端
lisw051 小时前
提升社会科学领域的计算可重复性
人工智能·数字时代