关于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();
}
转载:https://blog.csdn.net/u013270326/article/details/72955774
关于opencv的rows和cols的理解相关推荐
- OpenCV:解释rows,cols,channels=img2.shape,roi = img1[0:rows, 0:cols ]这行代码
这行代码的意思是把图片2像素的行数,列数以及通道数返回给rows,cols,channels. 然后将图片1从第0行到rows行,第0列到cols列的区域设定为roi(即感兴趣区域)
- rows是横着的还是cols_在Flask中如何自定义TextAreaField的rows和cols且将表单渲染为bootstrap的样式?...
flask-bootstrap提供了quick_form()这个方法用来快速渲染表单的样式.但是它无法指定rows和cols. forms.py class PostArticle(Form): ti ...
- openCV中直方图均衡化算法的理解
直方图均衡化就是调整灰度直方图的分布,即将原图中的灰度值映射为一个新的值.映射的结果直观表现是灰度图的分布变得均匀,从0到255都有分布,不像原图那样集中.图像上的表现就是对比度变大,亮的更亮,暗的更 ...
- opencv中的resize 函数 的理解以及引申
本文为转载文,原文链接:https://www.cnblogs.com/zvmxvm1991/p/7891394.html 一.什么是resize 函数: resize函数opencv中专门用来调整图 ...
- python进行图像处理rows, cols = Img.shape,copyMakeBorder()、merge()、dft()、log()和normalize()
这是学习opencv官网上例子的笔记跳转官网示例(用python实现)关于函数的用法,例如:copyMakeBorder(),merge().dft().getoptimeditsize().log( ...
- OpenCV+python:直方图的应用(一)
1,直方图均衡化 (Histogram Equalization) 假如图像的灰度分布不均匀,其灰度分布集中在较窄的范围内,使图像的细节不够清晰,对比度较低.直方图均衡化,对图像进行非线性拉伸,重新分 ...
- 【OpenCV 4开发详解】图像噪声的种类与生成
本文首发于"小白学视觉"微信公众号,欢迎关注公众号 本文作者为小白,版权归人民邮电出版社发行所有,禁止转载,侵权必究! 经过几个月的努力,小白终于完成了市面上第一本OpenCV 4 ...
- 【OpenCV 4开发详解】图像仿射变换
本文首发于"小白学视觉"微信公众号,欢迎关注公众号 本文作者为小白,版权归人民邮电出版社发行所有,禁止转载,侵权必究! 经过几个月的努力,小白终于完成了市面上第一本OpenCV 4 ...
- 【OpenCV 4开发详解】多通道分离与合并
本文首发于"小白学视觉"微信公众号,欢迎关注公众号 本文作者为小白,版权归人民邮电出版社发行所有,禁止转载,侵权必究! 经过几个月的努力,小白终于完成了市面上第一本OpenCV 4 ...
- opencv Mat 函数--CheckVector
学习opencv ,我们需要对opencv的函数有点了解 ,实现什么样子的功能,以及如何实现 下面我们一次来看checkVector 这个函数, int org.opencv.core.Mat.che ...
最新文章
- 线性回归之模型的保存和加载
- iOS NSRunloop 详解
- 计算机硬件维修是哪个专业,计算机硬件维护须知
- .net WCF简单实例
- 【剑指offer】设置在最小数目的阵列
- linux抓取网络信息,Linux获取所有网口及其详细信息
- 微型计算机用什么评价判断,环评中常用评价等级的判定
- linux su 拒绝权限,Linux禁止非WHEEL用户使用su命令
- NO.79——BFS,DFS,Astar,爬山法,最抖爬山法,模拟退火法解决八数码问题Python实现
- 计算机图形学必备的数学知识
- C语言 线性链表 节点的创建、添加和删除
- 虚函数,虚函数表,虚函数实现原理,虚函数实现机制,虚函数解决的问题
- 「UG/NX」BlockUI 字符串String
- python输入班级姓名_python,寻找班级里面名字最长的人
- 全程电子商务崛起山东
- Flutter集成Google、Facebook等第三方登陆完整流程
- Prometheus 简介
- 微信小程序图片分包 || 微信小程序资源分包
- putty连接Linux中文乱码
- 14260 Problem N	花坛