OpenCV学习笔记(20)关于opencv新版本中rows和cols的理解

2024-09-02 19:32

本文主要是介绍OpenCV学习笔记(20)关于opencv新版本中rows和cols的理解,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

rows:行

cols:列(column)

对于读入的一张图片SrcImage2,(图像分辨率对应为400×200像素)


SrcImage2.rows=200        (行)——(有200行像素)

SrcImage2.cols=400         (列)——(有400列像素)

测试程序:

	Mat SrcImage2;SrcImage2 = imread("400.jpg");std::cout <<"行:"<< SrcImage2.rows << std::endl;std::cout <<"列:"<< SrcImage2.cols << std::endl;


如果想创建一个跟图片宽和高相同的图片,可以使用.create方法

C++: void Mat::create(int rows, int cols, int type)


C++: void Mat::create(Size size, int type)
C++: void Mat::create(int ndims, const int* sizes, int type)
Parameters:
ndims – New array dimensionality.
rows – New number of rows.
cols – New number of columns.
size – Alternative new matrix size specification: Size(cols, rows)
sizes – Array of integers specifying a new array shape.
type – New matrix type.

测试程序:

SrcImage.create(SrcImage2.rows, SrcImage2.cols, CV_8UC3);

如果想创建一个矩形框或者矩形

查看官方文档可以知道

template<typename _Tp>
cv::Rect_< _Tp >::Rect_	(_Tp 	_x,_Tp 	_y,
_Tp 	_width,
_Tp 	_height 
)		

因此,创建一个矩形框或者矩形是一定要当心,注意是以宽和高来定义,与前面的创建窗口使用的行和列有所不同。

测试程序:

#include <opencv2/core/core.hpp>  
#include<opencv2/highgui/highgui.hpp>  
#include"opencv2/imgproc/imgproc.hpp"  
#include <iostream>  using namespace cv;void test()
{Mat SrcImage;//Mat GrayImage;//Mat BinaryImage;//const int IMAGE_WIDTH = 400;//const int IMAGE_HEIGHT = 200;//对比图像Mat SrcImage2;SrcImage2 = imread("400.jpg");std::cout <<"行:"<< SrcImage2.rows << std::endl;std::cout <<"列:"<< SrcImage2.cols << std::endl;//创建图像/*SrcImage.create(IMAGE_HEIGHT, IMAGE_WIDTH, CV_8UC3);*/SrcImage.create(SrcImage2.rows, SrcImage2.cols, CV_8UC3);//填充成白色rectangle(SrcImage, Rect(0, 0, SrcImage2.cols/2, SrcImage2.rows/2), CV_RGB(0, 0, 0), CV_FILLED);namedWindow("原图");imshow("原图", SrcImage);}
void main()
{test();waitKey();
}





这篇关于OpenCV学习笔记(20)关于opencv新版本中rows和cols的理解的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1130861

相关文章

使用jenv工具管理多个JDK版本的方法步骤

《使用jenv工具管理多个JDK版本的方法步骤》jenv是一个开源的Java环境管理工具,旨在帮助开发者在同一台机器上轻松管理和切换多个Java版本,:本文主要介绍使用jenv工具管理多个JD... 目录一、jenv到底是干啥的?二、jenv的核心功能(一)管理多个Java版本(二)支持插件扩展(三)环境隔

Go学习记录之runtime包深入解析

《Go学习记录之runtime包深入解析》Go语言runtime包管理运行时环境,涵盖goroutine调度、内存分配、垃圾回收、类型信息等核心功能,:本文主要介绍Go学习记录之runtime包的... 目录前言:一、runtime包内容学习1、作用:① Goroutine和并发控制:② 垃圾回收:③ 栈和

MySQL版本问题导致项目无法启动问题的解决方案

《MySQL版本问题导致项目无法启动问题的解决方案》本文记录了一次因MySQL版本不一致导致项目启动失败的经历,详细解析了连接错误的原因,并提供了两种解决方案:调整连接字符串禁用SSL或统一MySQL... 目录本地项目启动报错报错原因:解决方案第一个:第二种:容器启动mysql的坑两种修改时区的方法:本地

Android学习总结之Java和kotlin区别超详细分析

《Android学习总结之Java和kotlin区别超详细分析》Java和Kotlin都是用于Android开发的编程语言,它们各自具有独特的特点和优势,:本文主要介绍Android学习总结之Ja... 目录一、空安全机制真题 1:Kotlin 如何解决 Java 的 NullPointerExceptio

conda安装GPU版pytorch默认却是cpu版本

《conda安装GPU版pytorch默认却是cpu版本》本文主要介绍了遇到Conda安装PyTorchGPU版本却默认安装CPU的问题,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的... 目录一、问题描述二、网上解决方案罗列【此节为反面方案罗列!!!】三、发现的根本原因[独家]3.1 p

Python中OpenCV与Matplotlib的图像操作入门指南

《Python中OpenCV与Matplotlib的图像操作入门指南》:本文主要介绍Python中OpenCV与Matplotlib的图像操作指南,本文通过实例代码给大家介绍的非常详细,对大家的学... 目录一、环境准备二、图像的基本操作1. 图像读取、显示与保存 使用OpenCV操作2. 像素级操作3.

Redis指南及6.2.x版本安装过程

《Redis指南及6.2.x版本安装过程》Redis是完全开源免费的,遵守BSD协议,是一个高性能(NOSQL)的key-value数据库,Redis是一个开源的使用ANSIC语言编写、支持网络、... 目录概述Redis特点Redis应用场景缓存缓存分布式会话分布式锁社交网络最新列表Redis各版本介绍旧

C/C++中OpenCV 矩阵运算的实现

《C/C++中OpenCV矩阵运算的实现》本文主要介绍了C/C++中OpenCV矩阵运算的实现,包括基本算术运算(标量与矩阵)、矩阵乘法、转置、逆矩阵、行列式、迹、范数等操作,感兴趣的可以了解一下... 目录矩阵的创建与初始化创建矩阵访问矩阵元素基本的算术运算 ➕➖✖️➗矩阵与标量运算矩阵与矩阵运算 (逐元

IIS 7.0 及更高版本中的 FTP 状态代码

《IIS7.0及更高版本中的FTP状态代码》本文介绍IIS7.0中的FTP状态代码,方便大家在使用iis中发现ftp的问题... 简介尝试使用 FTP 访问运行 Internet Information Services (IIS) 7.0 或更高版本的服务器上的内容时,IIS 将返回指示响应状态的数字代

C/C++的OpenCV 进行图像梯度提取的几种实现

《C/C++的OpenCV进行图像梯度提取的几种实现》本文主要介绍了C/C++的OpenCV进行图像梯度提取的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的... 目录预www.chinasem.cn备知识1. 图像加载与预处理2. Sobel 算子计算 X 和 Y