### 获取图形的高和宽——OpenCV基础知识 #### 一、引言 在图像处理领域,OpenCV(开源计算机视觉库)是一个强大的工具包,它提供了广泛的算法来处理图像和视频流。对于初学者而言,了解如何加载图像以及获取图像的基本属性是至关重要的第一步。本文将详细介绍如何使用OpenCV来加载一张图片,并从中获取其宽度和高度。 #### 二、准备工作 在深入探讨之前,确保已经安装了OpenCV库。OpenCV可以在多种平台上运行,包括Windows、Linux和macOS。以下是一些必要的步骤: 1. **下载与安装OpenCV**:访问OpenCV官网(https://opencv.org/releases/)下载最新版本的OpenCV库。根据所使用的操作系统选择合适的安装包。 2. **设置开发环境**:如果使用的是Visual Studio或其他IDE,需要配置环境变量以便正确引用OpenCV库。 #### 三、代码解析 接下来,我们将详细分析给定代码示例中的各个部分。 ```cpp #include"pch.h" #include<iostream> #include<stdio.h> #include<tchar.h> #include<iostream> #include<fstream> #include<string> #include<iostream> #include<vector> #include<opencv2\imgproc\types_c.h> #include"opencv2/highgui/highgui.hpp" #include"opencv2/imgproc/imgproc.hpp" #include<opencv2\core\core.hpp> #include<opencv2\opencv.hpp> #include<opencv2/highgui/highgui.hpp> #include"opencv2/opencv.hpp" using namespace cv; using namespace std; vector<vector<Point>> contours; vector<vector<Point>> contours1; vector<Vec4i> hierarchy; int main() { Mat img1 = imread("3.jpg", 1); int height = img1.rows; int width = img1.cols; int a = height * width; cout << "Im.dims=" << height << endl; cout << "Im.dims=" << width << endl; cout << "Im.dims=" << a << endl; } ``` ##### 1. 包含头文件 在程序开始时,包含了多个头文件。这些头文件主要负责引入OpenCV库和其他C++标准库的功能。 - `#include "opencv2/...`:这是OpenCV库的核心部分,包含了处理图像的各种函数。 - `#include <iostream>`:用于处理输入输出操作。 - `#include <vector>`:用于定义向量容器,常用于存储图像处理结果。 ##### 2. 命名空间 `using namespace cv;` 和 `using namespace std;` 这两行代码表示程序中可以直接使用OpenCV和C++标准库中的函数和对象,无需每次调用时都加上前缀。 ##### 3. 主函数 - **加载图像**:通过 `Mat img1 = imread("3.jpg", 1);` 加载名为“3.jpg”的图像。这里使用了 `1` 作为第二个参数,表示以彩色模式加载图像。 - **获取图像尺寸**: - `int height = img1.rows;`:获取图像的高度。 - `int width = img1.cols;`:获取图像的宽度。 - `int a = height * width;`:计算图像的像素总数。 ##### 4. 输出结果 程序通过 `cout` 将图像的高度、宽度以及像素总数输出到控制台。 #### 四、小结 本文介绍了如何使用OpenCV库加载图像,并从中获取图像的高度和宽度。这是一项基本但非常重要的技能,是进行更复杂图像处理任务的基础。掌握了这项技能之后,可以进一步探索OpenCV库提供的其他功能,如图像增强、特征检测等。 通过本文的学习,希望读者能够对OpenCV有一个初步的了解,并能够在实际项目中灵活运用这些基础知识。



















#include <iostream>
#include <stdio.h>
#include <tchar.h>
#include <iostream>
#include <fstream>
#include <string>
#include <iostream>
#include <vector>
#include <opencv2\imgproc\types_c.h>
#include "opencv2/highgui/highgui.hpp"
#include "opencv2/imgproc/imgproc.hpp"
#include <opencv2/core/core.hpp>
#include <opencv2\opencv.hpp>
#include <opencv2/highgui/highgui.hpp>
#include "opencv2/opencv.hpp"
using namespace cv;
using namespace std;
vector<vector<Point> > contours;
vector<vector<Point> > contours1;
vector<Vec4i> hierarchy;
int main()
{
Mat img1 = imread("3.jpg", 1);
int height = img1.rows;


- 粉丝: 0
我的内容管理 展开
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
我的下载
下载帮助


最新资源
- 商业创业计划书简约缤纷活力互联网初创公司介绍模板.pptx
- 计算机应用基础项目化教程.ppt
- VMware虚拟化推动数据中心的革命.ppt
- java中种实施方案模式详解.doc
- 通信技术子载波交互双模OFDM系统设计与检测算法优化:提升BER性能和频谱效率(含详细代码及解释)
- 计算机会计练习题.doc
- C语言试题、学习、历年考试大全5.doc
- 论网络会计信息系统的核心价值:及时性与相关性.docx
- 大数据时代信息安全的对策.docx
- 小型企业局域网网络规划实施方案书.doc
- 互联网+对居民体育生活方式的影响及其引导路径.docx
- 计算机网络安全与技术的研究.doc
- 创新服务-建设智慧园区——上海软件园及服务联盟年终工作交流会召开-软件技术.doc
- 互联网背景下商业银行信贷业务内部审计优化对策.docx
- 结构工程基于扩散模型的端到端智能剪力墙结构布局生成与分析系统设计:StructDiffusion技术详解与应用(含详细代码及解释)
- C#编程精髓:深入浅出.NET 4.5框架


