第一次用用Opencv进行图像处理

2023.7.06更新

codeblocks安装opencv

直接放参考链接,完成安装该步骤来,简单高效!

安装教程链接
有一个问题就是第一次安装完成后运行时会报确实某些ddl的错误,关机重启就好啦!

尝试运行

ddl的错误解决后可以用以下代码进行测试,测试通过后基本就ok啦,记得改一下图片的地址。

 #include <iostream>#include <opencv2/opencv.hpp>using namespace cv;int main(){Mat img = imread("lena.jpg",0);if(!img.data)return -1;imshow("ahle",img);waitKey(0);return 0;}
  1. 错误2 找不到某个hpp文件,xfeatures2d.hpp
    这是因为opencv中缺少这些文件,我们先自己手动下载下来,下载下来的是opencv_contrib文件,里面包含了很多hpp文件,下次缺少的时候直接去找就行,很方便。下载地址如下:
    下载链接1
    下载的时候一定要找到对应的版本,和自己的opencv要一致,我的是opencv4.1.1,我单独在网上搜的下载地址,下载地址如下
    下载地址2
    再来一个,这个是其它的
    下载地址3
    假设缺少的是xfeatures2d.hpp文件,先去D:\opencv_contrib-4.1.1\opencv_contrib-4.1.1\modules\xfeatures2d\include\opencv2路径里找到features2d文件,把这个文件复制到D:\OpenCV-MinGW-Build-OpenCV-4.1.1-x64\OpenCV-MinGW-Build-OpenCV-4.1.1-x64\include\opencv2中,注意一点,如果代码是#include <opencv2/xfeatures2d.hpp>,表示xfeatures2d.hpp在opencv2文件夹下,如果代码是#include <opencv2/xfeatures2d/xfeatures2d.hpp>表示xfeatures2d.hpp是在opencv2文件夹中的xfeatures2d文件夹中,根据代码去放置相应的文件。
  2. 错误2 error: ‘CV_WINDOW_AUTOSIZE’ was not declared in this scope
    头文件里添加#include <opencv2/highgui/highgui_c.h>即可。
    Opencv版本4.1.1
    error: ‘CV_RETR_TREE’ was not declared 和
    error: ‘CV_CHAIN_APPROX_SIMPLE’ was not declared解决方法同理。

Grabcut抠图实践

  1. 关于mat数据结构,参考链接
  2. namedWindow(“src”, CV_WINDOW_AUTOSIZE);
    //namedWindow()的功能就是新建一个显示窗口。可以指定窗口的类型
    //CV_WINDOW_AUTOSIZE 窗口大小自动适应图片大小,并且不可手动更改
    参考链接
  3. Opencv之鼠标响应setMouseCallback()
    参考链接
  4. Rect类
    参考链接

grabCut代码复现

参考文章

  1. 报错误:error: ‘vector’ was not declared in this scope|
    首先把vector头文件添加进去,然后在定义的vector变量前添加命名空间,即std::vector vec;

  2. Opencv之鼠标响应setMouseCallback()
    参考链接

  3. Rect类
    参考链接

2023.7.08更新
现在开始自己比对着敲grabcut的源代码啦!

一些c++语法

  1. 类中的成员函数:A fun4()const; 其意义上是不能修改所在类的的任何变量。
    在这里插入图片描述
  2. mat的创建函数
    像素是1*(modelSize*componentsCount)大小,C1表示一通道,64表示每个通道的是64位数,F表示单精度浮点数
    在这里插入图片描述
  3. 读取图像坐标
    cv::mat的成员函数: .at(int y, int x)可以用来存取图像中对应坐标为(x,y)的元素坐标。但是在使用它时要注意,在编译期必须要已知图像的数据类型,这是因为cv::mat可以存放任意数据类型的元素。
  4. Vec3b就是一个uchar类型的数组,长度为 3
  5. pano.getMatRef()
    pano的类型应该是InputOutputArray类型之类的Mat的基类(cv::InputOutputArray pano),这个函数是将pano内数据提取出来转换为mat,有点像string类的c_str()吧…
  6. opencv入门基础
    链接

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/28136.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

行业追踪,2023-07-18,减速器,汽车零部件是重点关注板块,随时开启

自动复盘 2023-07-18 凡所有相&#xff0c;皆是虚妄。若见诸相非相&#xff0c;即见如来。 k 线图是最好的老师&#xff0c;每天持续发布板块的rps排名&#xff0c;追踪板块&#xff0c;板块来开仓&#xff0c;板块去清仓&#xff0c;丢弃自以为是的想法&#xff0c;板块去留让…

异步复位同步释放

1、概念 异步复位同步释放就是在复位信号到来的时候不受时钟信号的同步&#xff0c;在复位信号释放的时候受到时钟信号的同步&#xff1b; 优点是可以避免电路出现瞬态错误或者亚稳态。 2、原理图 3、代码实现 /***********************************************/ /**…

【unity之IMGUI实践】单例模式管理面板对象【一】

&#x1f468;‍&#x1f4bb;个人主页&#xff1a;元宇宙-秩沅 &#x1f468;‍&#x1f4bb; hallo 欢迎 点赞&#x1f44d; 收藏⭐ 留言&#x1f4dd; 加关注✅! &#x1f468;‍&#x1f4bb; 本文由 秩沅 原创 &#x1f468;‍&#x1f4bb; 收录于专栏&#xff1a;uni…

你知道Apache 软件基金会如何选择开源项目吗

Apache软件基金会&#xff08;Apache Software Foundation&#xff0c;简称ASF&#xff09;是一个致力于开源软件发展的慈善组织&#xff0c;因其广泛的项目和开放的治理模式而备受社区赞誉。作为全球最大的开源基金会之一&#xff0c;ASF如何选择开源项目成为人们关注的焦点。…

哇~真的是你呀!今天是LIUNX中的SAMBA。

目录 前言 一、概述 二、安装 三、在SAMBA服务器中设置共享目录 四、客户端查看共享目录及登录 五、本地映射 六、客户端自动挂载 七、用户别名 八、访问控制 总结 前言 SAMBA是一个开源的软件套件&#xff0c;用于在Linux和UNIX系统上实现SMB/CIFS网络协议。SMB&#xff08;S…

大语言模型(LLM)评估综述

论文地址&#xff1a;https://arxiv.org/abs/2307.03109 Github地址&#xff1a;https://github.com/MLGroupJLU/LLM-eval-survey 一 、背景 随着ChatGPT和GPT-4的推出&#xff0c;大型语言模型&#xff08;LLM&#xff09;在学术界和工业界的热度日益升高&#xff0c;这主要…

物联网(IoT):连接未来的万物之网

引言&#xff1a; 物联网&#xff08;Internet of Things&#xff0c;简称IoT&#xff09;是指通过各种智能设备和传感器&#xff0c;使物体能够互联互通、收集和共享数据的网络。随着科技的不断进步和智能设备的普及&#xff0c;物联网的应用呈现出爆发式增长&#xff0c;对各…

【网关】ShenYu Gateway入门Demo体验,ShenYu网关2.6.0直接调用Dubbo服务

本次为新开源框架接入ShenYu网关做基础学习指导&#xff0c;特地来下载官网的demo体验一把&#xff0c;具体是想通过网关泛化调用dubbo服务。本次使用的是最新版本2.6.0。 官网文档&#xff1a; 如何通过 Apache ShenYu 网关代理 Dubbo 服务 | Apache Dubbo 环境准备 第一步&a…

React(2)

题外话&#xff1a;vscode有个插件可以很方便的快速写代码 输入rcc回车 1.组件嵌套 import React, { Component } from reactclass Navbar extends Component{render(){return <div>Navbar</div>} }const Swiper()>{return <div>Swiper</div> }cons…

Spring Scope

Spring中五种 Scope域 singleton&#xff0c;容器启动时创建&#xff08;未设置延迟&#xff09;&#xff0c;容器关闭时销毁【单例】prototype&#xff0c;每次使用时创建&#xff0c;不会自动销毁&#xff0c;需要调用 DefaultListableBeanFactory.destroyBean(bean) 销毁【…

sqlserver 存储过程当中如何实现增删改查

--声明存储过程 新增编辑 ALTER procedure [dbo].[Eng_MyAddOrEdtADPro] My_Cocode int, Type int, -- --1 新增 2 编辑 My_KeyId uniqueidentifier, My_PCode int, My_SCode int, My_PName nvarchar(36), My_SName nvarchar(36), My_Orde…

OpenCV for Python 学习第三天 :图片处理之NumPy库与OpenCV相结合

上一篇博客我们了解了图像在OpenCV中的保存方式。并且我们自己上手创建了一张灰度图像和一张彩色图像。除此之外&#xff0c;我们还了解到了彩色图像通道在OpenCV中和我们日常所了解的不一样&#xff0c;是通过BGR的顺序进行编码的。咱们一定要记清楚哦~ 那么今天&#xff0c;我…