OpenCV像素点处理

news/2024/6/29 13:47:55

转自:http://blog.csdn.net/hxgqh/archive/2011/02/23/6202001.aspx

 

获得像素点的值便可以更加灵活的进行图像处理,在OpenCV里可以通过cvGet2D()和cvSet2D()两个函数加上一个CvScalar结构体做到。
OpenCV中,CvScalar结构为:
typedef struct CvScalar
{
    double val[4];
}
CvScalar;
 
4个double型变量,算法处理时不至于被强制类型转换而降低精度了。
再来看读写函数的定义:
 
cvGet2D 获得某个点的值, idx0=hight 行值, idx1=width 列值。
CVAPI(CvScalar) cvGet2D( const CvArr* arr, int idx0, int idx1 );
 
cvSet2D 给某个点赋值。
CVAPI(void) cvSet2D( CvArr* arr, int idx0, int idx1, CvScalar value );
 
有上可见,cvGet2D的返回类型和cvSet2D中value的类型都是CvScalar,这样定义一个CvScalar变量再调用函数就OK了。
 
OpenCV中像素点读写例子:
 


int main(int argc, char **argv)
{
    IplImage *img = cvLoadImage(argv[1], 1);
    CvScalar pixel;
    for (int i = 0; i < img->height; ++i)
    {
        for (int j = 0; j < img->width; ++j)
        {
            //获得像素的RGB值并显示, 注意内存中存储顺序是BGR
            pixel = cvGet2D(img, i, j);
            printf("B=%f,G=%f,R=%f/t", pixel.val[0], pixel.val[1], pixel.val[2]);
            //修改各点的值
            pixel.val[0] = 0;
            pixel.val[1] = 0;
            pixel.val[2] = 0;
            cvSet2D(img, i, j, pixel);
        }
    }
    cvNamedWindow("image", 1);
    cvShowImage("image", img);
    cvWaitKey(0);
    cvDestroyWindow("image");
    cvReleaseImage(&img);
    return 0;
}
 


http://lihuaxi.xjx100.cn/news/226133.html

相关文章

ASP.NET管理状态的十种途径

HTTP协议是无状态的&#xff0c;ASP.NET提供了丰富的手段在页面之间管理状态。本文列举ASP.NET管理状态的十种途径。 ASP.NET中&#xff0c;从System.Web.UI.Page继承的类里有以下十种管理页面状态的途径&#xff1a; 1. Application对象: this.Application 2. …

[matlab]Monte Carlo模拟学习笔记

理论基础&#xff1a;大数定理&#xff0c;当频数足够多时&#xff0c;频率可以逼近概率&#xff0c;从而依靠概率与$\pi$的关系&#xff0c;求出$\pi$ 所以&#xff0c;rand在Monte Carlo中是必不可少的&#xff0c;必须保证测试数据的随机性。 用蒙特卡洛方法进行计算机模拟的…

mysql 查询结果转置_转置MySQL查询 – 需要将行放入列中

您需要执行PIVOT操作,MySQL本身不支持该操作(与其他一些RDBMS不同).最接近的是沿着以下几行构造SQL&#xff1a;SELECT ProductId,GROUP_CONCAT(IF(NameBrand Name ,value,NULL))AS Brand Name,GROUP_CONCAT(IF(NameEthernet Technology ,value,NULL))AS Ethernet Technology,G…

已知空间一点到另外两点直线的距离

转自&#xff1a;http://www.cnblogs.com/clarkustb/archive/2008/11/04/1326500.html 已知空间一点到另外两点直线的距离设空间中的三点为M1,M2,M3,分别用矢量a,b表示方向向量M1M2和M1M3,则&#xff1a; 1. M3到M1,M2连线的距离为|axb|/|a|&#xff0c;这里|.|表示向量的…

用Asp.net 传送大文件

Chris Hynes我们在上传大文件时都遇到过这样或那样的问题。设置很大的maxRequestLength值并不能完全解决问题&#xff0c;因为ASP.NET会block直到把整个文件载入内存后&#xff0c;再加以处理。实际上&#xff0c;如果文件很大的话&#xff0c;我们经常会见到Internet Explorer…

mysql注入实例获取答案_本文实例讲述了MySQL解决SQL注入的另类方法。分享给大家供大家参考,具体如下:问题解读我觉得,这个问题每年带来的成本可以高达数十亿美元了。本文就来谈谈,...

本文实例讲述了MySQL解决SQL注入的另类方法。分享给大家供大家参考&#xff0c;具体如下&#xff1a;问题解读我觉得&#xff0c;这个问题每年带来的成本可以高达数十亿美元了。本文就来谈谈&#xff0c;假定我们有如下 SQL 模板语句&#xff1a;select * from T where f1 {va…

在ASP.NET中随意创建图形信息

如果没有一个外部组件的支持&#xff0c;在ASP中是不能动态创建图形的&#xff0c;不管它是一个图表&#xff0c;一个横幅或仅仅是一个图形计数器。可喜的是&#xff0c;这一点在ASP.NET中改变了。现在&#xff0c;我们只需要使用内置功能&#xff0c;就能够很容易动态创建图形…

CxImage图像处理类库

转自&#xff1a;http://blog.csdn.net/byxdaz/archive/2009/04/10/4061324.aspx CxImage是一个可以用于MFC 的C图像处理类库类&#xff0c;它可以打开&#xff0c;保存&#xff0c;显示&#xff0c;转换各种常见格式的图像文件&#xff0c;比如BMP, JPEG, GIF, PNG, TIFF, MNG…