关于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 
 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值