IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 人工智能 -> 一文彻底看懂OpenCV的setTo()函数 -> 正文阅读

[人工智能]一文彻底看懂OpenCV的setTo()函数


写在前面

本文主要介绍OpenCV中的setTo()函数。

函数介绍

可以直接在 OpenCV参考文档 中查阅:
在这里插入图片描述


函数功能演示

通过查阅源码,我们可以看到setTo()函数的原型如下:

 /** @brief Sets all or some of the array elements to the specified value.

    This is an advanced variant of the Mat::operator=(const Scalar& s) operator.
    @param value Assigned scalar converted to the actual array type.
    @param mask Operation mask of the same size as \*this. Its non-zero elements indicate which matrix
    elements need to be copied. The mask has to be of type CV_8U and can have 1 or multiple channels
     */
    Mat& setTo(InputArray value, InputArray mask=noArray());

用法如下:

src.setTo(0, mask);

该函数的功能,是针对图像矩阵src,在矩阵src中,把矩阵mask中元素不为0的相应像素点位置的像素值全部变为value值1,举例说明如下:

#include<stdio.h>
#include<opencv2/opencv.hpp>

int main() {

	cv::Mat src = (Mat_<uchar>(3, 3) << 0, 100, 0, 0, 205, 160, 0, 0, 0);

	cv::Mat mask = (Mat_<uchar>(3, 3) << 0, 120, 0, 150, 0, 130, 0, 0, 0);

	src.setTo(0, mask);


	std::cout << src << std::endl;

	return 0;
}

通过Image Watch这个插件,我们可以看到经过setTo()函数前后,图像src像素值的变化:


setTo()函数处理前:
在这里插入图片描述


setTo()函数处理后:
在这里插入图片描述
通过这个案例可以发现,setTo()函数相当于是给图像src加了一个mask蒙版,mask中不为0的像素点位置,在图像src中的相应位置都要置为0或其他自定义的value值。


至此,想必各位已经对setTo()函数有了一个相当清晰的了解,写到这里,差不多本文也就要结束了,之所以会选择写这篇文章,是因为本人在学习setTo()这个函数时,发现网上的讲解并不是很清晰,对于小白并不是很友好,后来自己动手实践了后,才将其差不多搞明白,遂将其记录之,以助后人。如果我的这篇文章帮助到了你,那我也会感到很高兴,一个人能走多远,在于与谁同行。


参考文章


  1. 007-Opencv基础: Mat类里setTo函数详解 ??

  人工智能 最新文章
2022吴恩达机器学习课程——第二课(神经网
第十五章 规则学习
FixMatch: Simplifying Semi-Supervised Le
数据挖掘Java——Kmeans算法的实现
大脑皮层的分割方法
【翻译】GPT-3是如何工作的
论文笔记:TEACHTEXT: CrossModal Generaliz
python从零学(六)
详解Python 3.x 导入(import)
【答读者问27】backtrader不支持最新版本的
上一篇文章      下一篇文章      查看所有文章
加:2021-08-10 13:25:17  更:2021-08-10 13:25:48 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/27 21:44:21-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码