1、先验知识

灰度图像来说,img.step[0]代表图像一行的的长度:img.step[0]=img.cols;

img.step[1]代表图像一个元素的数据大小:img.step[0]=img.channels() ;

img.data: uchar的指针,指向Mat数据矩阵的首地址。

2、验证:通过地址访问元素

#include <iostream>
#include <opencv2/core.hpp>
#include <opencv2/highgui.hpp>
#include <opencv2/imgproc.hpp>
#include<vector>
#include<Eigen/Core>
#include <corecrt_math_defines.h>
using namespace std;
using namespace cv;int main()
{//生成一个3*4的矩阵Mat M = Mat::eye(3,4,CV_8UC1);cout << "M=\n" << M << endl;//访问第1行第1列的元素double sample11 = *(M.data+M.step[0]*0+M.step[1]*0);cout << "(1,1)=" << sample11 << endl;//访问第2行第2列的元素double sample22 = *(M.data+M.step[0]*1+M.step[1]*1);cout << "(2,2)=" << sample22 << endl;cout << "M.step[0]="<<M.step[0] << endl;cout << "M.step[1]="<<M.step[1] << endl;cv::waitKey(0);return 0;
}

3、隔点采样

#include <iostream>
#include <opencv2/core.hpp>
#include <opencv2/highgui.hpp>
#include <opencv2/imgproc.hpp>
#include<vector>
#include<Eigen/Core>
#include <corecrt_math_defines.h>
using namespace std;
using namespace cv;
#include "sift.h";Mat downSample(Mat src)
{Mat dst;if (src.channels() != 1)return src;if (src.cols <= 1 || src.rows <= 1){src.copyTo(dst);return dst;}dst.create((int)(src.rows / 2), (int)(src.cols / 2), src.type());cout << "-- " << dst.rows << " " << dst.cols << " --" << endl;int m = 0, n = 0;for (int i = 0; i < src.rows; i += 2, m++){n = 0;for (int j = 0; j < src.cols; j += 2, n++){//地址=首地址+cols*i+1*jdouble sample = *(src.data + src.step[0] * i + src.step[1] * j);//防止当图像长宽不一致时,长宽为奇数时,m,n越界if (m < dst.rows && n < dst.cols){*(dst.data + dst.step[0] * m + dst.step[1] * n) = sample;}}}return dst;
}int main()
{double time0 = static_cast<double>(getTickCount());//记录起始时间Mat img = imread("D:\\VC\\c++\\opencv源码\\opencv源码\\Stereo_Sample\\ImageL1.jpg", IMREAD_GRAYSCALE);if (img.empty()){cout << "读取图像错误!" << endl;return 0;}siftLou k;Mat dst;dst = downSample(img);dst = downSample(dst);dst = downSample(dst);namedWindow("dst", WINDOW_FREERATIO);namedWindow("src", WINDOW_FREERATIO);imshow("dst", dst);imshow("src", img);cout << img.size() << endl;cout << dst.size() << endl;cout << "img.step[0]="<<img.step[0] << endl;cout << "img.step[1]=" << img.step[1] << endl;cout << "此方法运行时间:" << time0 << "秒" << endl;//输出运行时间cv::waitKey(0);return 0;
}

opencv隔点采样(下采样)相关推荐

  1. 深度学习上采样下采样概念以及实现

    #pic_center =400x 系列文章: 文章目录 参考博客 概念 上采样 下采样 实现 上采样 下采样 参考博客 [深度学习]上采样,下采样,卷积 torch.nn.functional.in ...

  2. 过采样与欠采样图像重采样(上采样下采样)

    参考文章: https://blog.csdn.net/majinlei121/article/details/46742339 https://blog.csdn.net/Chaolei3/arti ...

  3. 重采样 上采样 下采样

    重采样的原理: 重采样主要是分为上采样和下采样,在进行采样的过程中,需要注意采样的倍率的问题,并不是可以随意的改变采样率的大小的,根据采样定理:在进行模拟/数字信号的转换过程中,当采样频率fs.max ...

  4. 卷积 反卷积 上采样 下采样 区别

    1.卷积 就是利用卷积核  步长前进 卷积整个图片 2.反卷积 反卷积的具体操作 原图输入尺寸为[1,3,3,3]对应[batch_size,channels,width,height] 反卷积tco ...

  5. 降采样,下采样,池化

    概念 缩小图像(或称为下采样(subsampled)或降采样(downsampled))的主要目的有两个:1.使得图像符合显示区域的大小:2.生成对应图像的缩略图. 放大图像(或称为上采样(upsam ...

  6. python下采样_python + opencv 如何在上采样下采样之后导出图片?

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 import cv2 def pyramid_demo(image): level = 3 temp = image.copy() pyramid_ima ...

  7. 下采样downsample代码

    针对二分类表格数据任务 [1]代码如下: def df_train(df_train):number_records_fraud = len(df_train[df_train.isFraud == ...

  8. python 下采样和上采样

    前言 由于工作数据量较大,训练模型很少直接单机python,一般都采用SparkML,最近把SparkML的工作使用python简单的写了一下,先写个上下采样,最终目的是为了让正负样本达到均衡(有人问 ...

  9. 彻底分清机器学习中的上采样、下采样、过采样、欠采样【总结】

    今天看了篇中文的硕士论文,读着读着感觉有点奇怪,仔细一看原来他把下采样和欠采样搞混了,这里笔者就详细区分一下各个名称的概念. 文章目录 1. 上采样&下采样 2.过采样&欠采样 3.信 ...

最新文章

  1. Ubuntu10下MySQL搭建Amoeba_读写分离
  2. FastJson对于JSON格式字符串、JSON对象及JavaBean之间的相互转换
  3. C++ code:string stream(string流)学习大全
  4. 袁隆平杂交水稻创新团队发布“农业芯片”,世界顶级科学家点赞拼多多新农人...
  5. 男子拒绝春节带电脑回家工作被开除,最后结果十分舒适...
  6. Mount挂载命令使用方法
  7. 模板点击通过sql获得值 举例说明
  8. 简单的spring mvc实例
  9. 分享一下泛微OA与用友NC对接自动生成凭证的任务(一)
  10. IIS7下DataFormatString={0:c}人民币符号为?的问题
  11. 全新V10抢单系统唯品会/京东/淘宝自动抢单区块系统源码
  12. 公网与私网地址转换——NAT技术的使用小技巧,超简单!!!
  13. 计算机应用课程思政的应用,计算机类课程思政改革——以“Office高级应用”课程为例...
  14. 总结:阿里云学生服务器地址/条件/续费等问题及解答FAQ
  15. kubernetes集群搭建Zabbix监控平台
  16. 基于云服务创建离线数据统计分析服务(一)
  17. 2022年湖南省证券从业资格(证券投资基金)练习题及答案
  18. 网易运营微专业 目录
  19. 【数学建模】基于matlab船舶三自由度MMG模型【含Matlab源码 1925期】
  20. 客快物流大数据项目(八十一): Kudu原理

热门文章

  1. ScrollView can host only one direct child 问题处理
  2. 多媒体音量条显示异常跳动
  3. 隐藏Nginx版本号的安全性与方法
  4. 201621123030《Java程序设计》第4周学习总结
  5. UnixLinux大学教程 读书笔记【1-3章】
  6. 观《逻辑思维,如何成为一个高手》
  7. INNO SETUP 获得命令行参数
  8. 合并两个有序数组(重新开始)
  9. 《OpenCV3编程入门》学习笔记9 直方图与匹配(一二) 图像直方图概述直方图的计算与绘制
  10. 目标检测计算mAP,AP,Recall,Precision的计算方式和代码(YOLO和FastRCNN等)