【opencv2】:图像元素的遍历

多说无益,先贴代码,再看解析:

函数的功能是实现图像颜色的缩减。

<span style="font-size:14px;">#include <opencv2\core\core.hpp>
#include <opencv2\highgui\highgui.hpp>

using namespace std;
using namespace cv;

void colorReduce(Mat &src,Mat &dst, int div = 64);
//注意:这里的div是个默认参数,其初始化只能在函数声明中进行,函数定义里不能给div初始化
int main(){

	Mat source = imread("1.jpg",1);
	Mat reduceColor(source.size(), source.channels());

	colorReduce(source, reduceColor);
	imshow("source", source);
	imshow("reducecolor", reduceColor);
	waitKey(0);
}
void colorReduce(Mat &src, Mat &dst,int div){
	src.copyTo(dst);
	int nline = dst.rows;
	int nchannel = dst.cols*dst.channels();//在opencv中颜色是按照BGR的顺序存储,故每行的通道数为前面的式子
	for (int j = 0; j < n1ine; j++)
	{
		uchar* data = dst.ptr<uchar>(j); //获取每行的头地址
		for (int i = 0; i < nchannel; i++)
		{
			data[i] = data[i]/div*div + div/2;//颜色缩减方法
		}
	}
}
</span>
时间: 2024-10-09 22:36:23

【opencv2】:图像元素的遍历的相关文章

OpenCV2:图像的几何变换,平移、镜像、缩放、旋转(2)

在OpenCV2:图像的几何变换,平移.镜像.缩放.旋转(1)主要介绍了图像变换中的向前映射.向后映射.处理变换过程中浮点坐标像素值的插值算法,并且基于OpenCV2实现了两个简单的几何变换:平移和镜像变换.本文主要稍微复杂点的两个几何变换:缩放和旋转. 1.图像缩放 图像的缩放主要用于改变图像的大小,缩放后图像的图像的宽度和高度会发生变化.水平缩放系数,控制图像宽度的缩放,其值为1,则图像的宽度不变:垂直缩放系数控制图像高度的缩放,其值为1,则图像的高度不变.如果水平缩放系数和垂直缩放系数不相

转 :asp教程.net c#数组遍历、排序、删除元素、插入、随机元素 数组遍历

asp教程.net c#数组遍历.排序.删除元素.插入.随机元素数组遍历 short[] sts={0,1,100,200};for(int i=0;i<sts.lenght;i++){  if(sts[i]>50) {  .....  }} 数组随机元素 public  hashtable  noorder(int count)         {             arraylist mylist = new arraylist();             hashtable ha

jQuery -&gt; 基于当前元素的遍历

pcDuino3下支持mmc启动,官方的Uboot是采用SPL框架实现的,因为内部的SRAM空间达到32K,我们完全可以在这32K空间内编写一个完整可用小巧的bootloader来完成引导Linux kernel的目的. 我们首先介绍下SPL框架,可以先看下<GNU ARM汇编--(十八)u-boot-采用nand_spl方式的启动方法>和<GNU ARM汇编--(十九)u-boot-nand-spl启动过程分析>,NAND_SPL也算是SPL框架下的一种模式. 当使用Nand f

java----数据结构与算法----集合元素的遍历:迭代器--------&gt;JavaAPI:java.util.Iterator+java.util.ListIterator

概述: 迭代器用于集合元素的遍历 迭代器有两种,分别是Iterator和ListIterator Iterator可以用于任何类型集合的遍历 ListIterator只能用于List集合的遍历 ListIterator接口继承了Iterator接口,所以前者拥有后者所定义的所有成员函数,同时,ListIterator还添加了一些具有List集合特性的操作函数,如按照索引访问集合元素.替换/添加集合元素等等 java.util.Iterator /** * @author chen * @date

OpenCV2:图像的几何变换,平移、镜像、缩放、旋转(1)

图像的几何变换是在不改变图像内容的前提下对图像像素的进行空间几何变换,主要包括了图像的平移变换.镜像变换.缩放和旋转等.本文首先介绍了图像几何变换的一些基本概念,然后再OpenCV2下实现了图像的平移变换.镜像变换.缩放以及旋转,最后介绍几何的组合变换(平移+缩放+旋转). 1.几何变换的基本概念 1.1 坐标映射关系 图像的几何变换改变了像素的空间位置,建立一种原图像像素与变换后图像像素之间的映射关系,通过这种映射关系能够实现下面两种计算: 原图像任意像素计算该像素在变换后图像的坐标位置 变换

[转]Java_List元素的遍历和删除

原文地址:http://blog.csdn.net/insistgogo/article/details/19619645 1.创建一个ArrayList [java] view plain List<Integer> list = new ArrayList<Integer>(); 2.List常用的遍历方法有三种: (1)下标循环 [java] view plain for (int i = 0, len = list.size(); i < len; i++) { Sy

Java基础知识强化之集合框架笔记43:Set集合之TreeSet存储Integer类型的元素并遍历

1. TreeSet类概述: • 能够对元素按照某种规则进行排序. • 或者根据创建set时提供的Comparator进行排序 • 具体取决于使用的构造方法 2. 代码示例: 1 package cn.itcast_05; 2 3 import java.util.TreeSet; 4 5 /* 6 * TreeSet:能够对元素按照某种规则进行排序. 7 * 排序有两种方式 8 * A:自然排序 9 * B:比较器排序 10 * 11 * TreeSet集合的特点:排序和唯一 12 * 13

Selenium&#160;WebDriver在不知道元素个数的情况下,完成页面所有元素的遍历

以一个选择企业页面为例,假设事先并不知道用户登录后会有几个企业供选择,但是case又需要遍历各个企业,保证各个企业均可正常被访问,那么就可以用红色标记的方式处理. public class ChooseEnterprise {private WebDriver driver;private String baseUrl;private StringBuffer verificationErrors = new StringBuffer(); @Beforepublic void setUp() 

08.18 javascript 06 数组 数组的概念 创建数组 读取数组中的元素 稀疏数组 添加和删除数组的元素 数组遍历 多维数组 数组的方法 类数组对象 作为数组的字符串

# 数组 ### 数组的概念 * 数组是值的有序集合 * 数组中的每个值 称之为 元素 * 每个元素可以是任意数据类型的值 * 每个元素都有索引(下标) * 元素的索引从0开始,按照顺序递增. 元素最大的索引 2^32-2 ### 创建数组 * 直接量 `[]` * 构造函方式  `new Array()` ### 读写数组中的元素 * 数组名[索引] ### 稀疏数组 * js数组的索引是连续的 * 没有连续的给元素赋值 , 没有赋值的元素会自动赋值 undefined ### 添加和删除 数