现代opengl 设计入门,opencv 纹理贴图

本文介绍了如何在OpenGL中结合OpenCV进行纹理贴图,强调了OpenCV在图像处理上的优势,如灰度图变换和自定义绘图。文章提供了配置Visual Studio 2010以支持OpenCV的步骤,包括添加包含文件路径、链接库和运行时动态库。此外,还提到了调试时的注意事项,如设置工作目录以确保顶点着色器、片段着色器和纹理文件的路径正确。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在 现代opengl 设计入门,纹理贴图 一文中介绍了用 stb_image.h 导入图片来实现openGL 的纹理贴图,而本文介绍另外一种方式opencv。 OpenCV是Intel®开源计算机视觉库,图像处理功能很强大。如果你熟悉opencv,或者正在使用,在做openGL 贴图的时候,肯定想如何组合。

如果你对opencv 不熟悉,那你还是用stb_image.h 导入图片比较简单。opencv的好处是,你可以利用opencv超强的处理图片,比如变换灰度图,或者自画图,这样灵活性比较好。我的测试环境是visual studio 2010 c++,  opencv 3.0 beta。更高级的oepncv 版本在2010 下需要自己编译。

opencv 导入图片,设置为opengl 贴图很简单,就是下面的代码:

cv::Mat image = cv::imread( "lena.jpg", 1 );
if(image.elemSize()>0)
  glTexImage2D(GL_TEXTURE_2D, 0, GL_RGB, image.cols,image.rows, 0, GL_BGR, GL_UNSIGNED_BYTE, image.data);

对于opengl 工程而言,其他要做的是添加opencv 应用必要的包含文件,链接库,设置文件路径,运行时动态库。当然还有重要一点,你先要安装好opencv3.0beta 以上版本,否则本文方法要些修改。

#include "opencv2/opencv.hpp"

在工程属性里添加opencv 的路径,我的是

include: C:\opencv\build\include;  

lib: C:\opencv\build\x86\vc10\lib;

图示如下:

链接时输入函数库添加:opencv_ts300d.lib; opencv_world300d.lib

原来opengl 本来包含 glfw3d.lib opendl32.lib

图示如下:

复制 opencv_world300d.dll,opencv_world300.dll 到你运行目录。

其他的都与  现代opengl 设计入门,纹理贴图  一文相似。

运行效果图,这个和上篇一样,只是纹理导入方式 不一样。opencv的好处是,你可以处理图片,比如变换灰度图,或者自画图,这样灵活性比较好。

代码,调试说明

要完成本工程的代码调试和运行要注意如下几点:

代码有好几个文件,着色器类shader_s.h 在这里,4.1.texture.vs,4.1.texture.fs在后面贴出了,主程序也在后面。

所有程序文件都准备好了,应该可以 编译链接成功了,如果不成功, 请看&n

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值