三天学会opencv(二)——矩阵的掩膜操作

简介: 三天学会opencv(二)——矩阵的掩膜操作

矩阵的掩膜操作


主要内容


  1. 获取图像像素指针
  2. 掩膜操作

获取图像像素指针


Mat.ptr(int i=0) 获取像素矩阵的指针,索引i表示第几行,从0开始计行数。

获得当前行指针const uchar* current= myImage.ptr(row );

获取当前像素点P(row, col)的像素值 p(row, col) =current[col]

像素范围处理


  • saturate_cast(-100),返回 0。
  • saturate_cast(100),返回100。
  • saturate_cast(288),返回255。

这个函数可以确保RGB的值的范围再0-255之间。

矩阵掩膜操作


image.png

说的简单一点就是:图像是像素集合到一起的产物,那么我们的掩膜操作就是找到一个3*3的矩阵中的中心点像素,将他的上下左右加起来,再用中间像素的五倍去减,然后赋值给中间像素。

代码示例:

int cols = (src.cols-1) * src.channels();
int offsetx = src.channels();
int rows = src.rows;
dst = Mat::zeros(src.size(), src.type());
for (int row = 1; row < (rows - 1); row++) {
  const uchar* previous = src.ptr<uchar>(row - 1);
  const uchar* current = src.ptr<uchar>(row);
  const uchar* next = src.ptr<uchar>(row + 1);
  uchar* output = dst.ptr<uchar>(row);
  for (int col = offsetx; col < cols; col++) {
    output[col] = saturate_cast<uchar>(5 * current[col] - (current[col- offsetx] + current[col+ offsetx] + previous[col] + next[col]));
  }
}

filter2D()函数


定义掩膜:

Mat kernel = (Mat_<char>(3,3) << 0, -1, 0, -1, 5, -1, 0, -1, 0);
filter2D( src, dst, src.depth(), kernel );

其中src与dst是Mat类型变量、src.depth表示位图深度,有32、24、8等。

这个代码的效果与上面的代码效果是相同的。

相关文章
|
8月前
|
计算机视觉 Python 索引
【Python Opencv】图片与视频的操作
【Python Opencv】图片与视频的操作
219 0
【Python Opencv】图片与视频的操作
|
7月前
|
计算机视觉
OpenCV中图像算术操作与逻辑操作
OpenCV中图像算术操作与逻辑操作
85 1
|
7月前
|
存储 Cloud Native Linux
OpenCV鼠标操作(画红色方框截取图像)
OpenCV鼠标操作(画红色方框截取图像)
|
7月前
|
计算机视觉
OpenCV图像像素逻辑操作
OpenCV图像像素逻辑操作
|
7月前
|
算法 计算机视觉
【Qt&OpenCV 图像阈值操作 threshold】
【Qt&OpenCV 图像阈值操作 threshold】
82 0
|
8月前
|
计算机视觉
OpenCV(三十一):形态学操作
OpenCV(三十一):形态学操作
129 0
|
8月前
|
存储 定位技术 计算机视觉
Armadillo与OpenCV矩阵数据mat、vec与Mat的相互转换
Armadillo与OpenCV矩阵数据mat、vec与Mat的相互转换
107 1
|
8月前
|
监控 API 计算机视觉
OpenCV这么简单为啥不学——1.7、实现OpenCV自带的七种形态学转换操作
OpenCV这么简单为啥不学——1.7、实现OpenCV自带的七种形态学转换操作
59 0
|
8月前
|
机器学习/深度学习 算法 计算机视觉
python入门(六) opencv的安装,图片操作,绘制文字图形,视频操作
python入门(六) opencv的安装,图片操作,绘制文字图形,视频操作
125 0
|
8月前
|
编解码 计算机视觉 Python
OpenCV保存摄像头视频和视频文件操作实战(附Python源码)
OpenCV保存摄像头视频和视频文件操作实战(附Python源码)
762 0