对图像的单个像素操作

自己总是忘记,做个笔记

static const Vec3b bcolors[] =

{

Vec3b(0,0,255),

Vec3b(0,128,255),

Vec3b(0,255,255),

Vec3b(0,255,0),

Vec3b(255,128,0),

Vec3b(255,255,0),

Vec3b(255,0,0),

Vec3b(255,0,255),

Vec3b(255,255,255)

};

for(int x=0;x<gray.rows;x++)//gray为二值图

{

for(int y=0;y<gray.cols;y++)

{

if(gray.at<uchar>(x,y)==0)

{

img1.at<Vec3b>(x,y)=bcolors[5];//修改RGB值

Point p;

p.x=y;

p.y=x;

point.push_back(p);

}

}

}

对图像的单个像素操作,布布扣,bubuko.com

时间: 2024-11-05 13:03:54

对图像的单个像素操作的相关文章

Opencv中图像的遍历与像素操作

Opencv中图像的遍历与像素操作 OpenCV中表示图像的数据结构是cv::Mat,Mat对象本质上是一个由数值组成的矩阵.矩阵的每一个元素代表一个像素,对于灰度图像,像素是由8位无符号数来表示(0代表黑,255代表白):对于彩色图像,每个像素是一个三元向量,即由三个8位无符号数来表示三个颜色通道(Opencv中顺次为蓝.绿.红). 我们先来介绍下cv::Mat类的获取像素的成员函数at(),其函数原型如下: template<typename _Tp> _Tp& at(int i0

OpenCV基础(二)---图像像素操作

图像像素操作 通过访问图像的像素,对灰度图像和RGB图像进行反差. 例如,在灰度图像中,某一个像素值为,pixel_value. 那么反差后的pixel_value = 255 - pixel_value. 对RGB图像处理类似,差别在于要对每一个颜色通道进行反差. 方法1: 1 #include <opencv2/opencv.hpp> 2 #include <iostream> 3 4 using namespace cv; 5 using namespace std; 6 7

OpenCV 学习(像素操作 Manipuating the Pixels)

OpenCV 学习(像素操作 Manipuating the Pixels) OpenCV 虽然提供了许多类型的图像处理函数,可以对图像进行各种常见的处理,但是总会有些操作时没有的,这时我们就需要自己来操纵像素,实现我们需要的功能.今天就来讲讲 OpenCV 进行像素级操作的几种方法,并做个比较. 在 OpenCV 中,图像用矩阵来表示,对应的数据类型为 cv::Mat . cv::Mat 功能很强大,矩阵的元素可以为字节.字.浮点数.数组等多种形式.对于灰度图像,每个像素用一个 8 bit 字

纯Python综合图像处理小工具(4)图像的自定义像素处理(剪纸滤镜)

<背景>  上一节介绍了python PIL库自带的10种滤镜处理,现成的库函数虽然用起来方便,但是对于图像处理的各种实际需求,还需要开发者开发自定义的滤镜算法.本文将给大家介绍如何使用PIL对图像进行自定义的像素级操作. <效果>  本文以剪纸风格图像处理作为例子:(算法借鉴了残阳似血的博客http://qinxuye.me/,特此鸣谢.) 原图: 处理后: <怎么做> 1.首先将处理参数预先设定好.设定阈值threshold,该阈值会用来区分作为目标颜色的前景色和将

【CImg】基本像素操作

继openCV之后接触的又一个C++视觉库——短小精干的CImg 刚开始接触的时候真的是..几乎无从下手,网上资料比较少,但发现有一篇非常有用的中文手册:http://wenku.baidu.com/link?url=GKEgUZUzabHADgCQG3Dg5NGzaMevXu38vvHF71UB339zZJVLaqYWCrPQfmNV7Y0gYMb340wVNK9fJ7Zu0H54Hchi8UwKI3yCQlCnVcoC8mK 再加上,CImg本身的代码并不是很多,也容易理解,最关键的是,源码

《OpenCV:访问Mat图像中每个像素值》

图像容器Mat 还是先看Mat的存储形式.Mat和Matlab里的数组格式有点像,但一般是二维向量,如果是灰度图,一般存放<uchar>类型:如果是RGB彩色图,存放<Vec3b>类型. 单通道灰度图数据存放格式: 多通道的图像中,每列并列存放通道数量的子列,如RGB三通道彩色图: 注意通道的顺序反转了:BGR.通常情况内存足够大的话图像的每一行是连续存放的,也就是在内存上图像的所有数据存放成一行,这中情况在访问时可以提供很大方便.可以用 isContinuous()函数来判断图像

访问图像中的像素[OpenCV 笔记16]

再更一发好久没更过的OpenCV,不过其实写到这个部分对计算机视觉算法有所了解的应该可以做到用什么查什么了,所以后面可能会更的慢一点吧,既然开了新坑,还是机器学习更有研究价值吧... 图像在内存中的存储方式 灰度图像 RGB图像,矩阵的列会包含多个子列 因为内存足够大,可以实现连续存储,因此,图像中的各行就能一行一行地连接起来,形成一个长行.连续存储,有助于提高图像扫面速度,可以使用isContinuous()来判断矩阵是否是连续存储. 颜色空间缩减 对于三通道图像,一个像素对应的颜色有一千六百

Android Bitmap 加载与像素操作

Android Bitmap 加载与像素操作 一:加载与像素读写 在Android SDK中,图像的像素读写可以通过getPixel与setPixel两个Bitmap的API实现.Bitmap API读取像素的代码如下: int pixel = bitmap.getPixel(col, row);// ARGB int red = Color.red(pixel); // same as (pixel >> 16) &0xff int green = Color.green(pixel

OpenCV 学习(像素操作 2)

在上一个学习笔记中,简单介绍了访问图像像素的几种方法,并对这几种方法的效率进行了些简单的比较.但是更多的情况是我们要同时访问多个像素,经过较为复杂的运算才能得到我们希望的结果.今天就来讲讲这种情况如何处理. 同时访问多行像素数据 下面我们以laplace 锐化为例,Laplacian 算子写为矩阵形式如下: ???0?10?15?10?10??? 可以看到,计算当前点的输出时需要上下左右 4 邻近点的值.这时最简单的想法就是同时用三个指针,分别指向当前行.上一行和下一行.下面是个例子代码: vo