zoukankan      html  css  js  c++  java
  • OpenCV的图像像素访问[转]

    OpenCV图像像素访问

    OpenCV是基于C/C++语言的开源图像处理函数库,可用于实时处理图像的有关问题,最近在实践访问图像像素方面有些许感悟:

    运用OpenCV访问图像像素有间接访问。直接访问、基于指针的访问、基于 c++ wrapper 的直接访问等手段,经过实验觉得基于指针的直接访问较简单高效,同时也更容易接受:

    我们假设要访问第k通道、第i行、第j列的像素:

    1.对于单通道字节型图像:

    IplImage*img=

    cvCreateImage(cvSize(740,550),IPL_DEPTH_8U,1);

    int height=img->height;

    int width-img->width;

    int step=img->widthStep/sizeof(uchar);

    uchar*data=(uchar*)img->imageData;

    data[i*step+j]=111;

    2.对于多通道字节型图像:

    IplImage* img  = cvCreateImage(cvSize(740,550),IPL_DEPTH_8U,3);

    int height=img->height;

    int width=img->width;

    int step=img->widthStep/sizeof(uchar);

    int channels=img->nChannels;

    uchar*data=(uchar*)img->imageData;

    data[i*step+j*channels+k] = 111;

    3.对于多通道浮点型图像(假设图像数据采用4字节(32位)行对齐方式):

    IplImage*img=

    cvCreateImage(cvSize(640,480),IPL_DEPTH_32F,3);

    int height=img->height;

    int width=img->width;

    int step=img->widthStep/sizeof(float);

    int channels=img->nChannels;

    float*data=(float*)img->imageData;

    data[i*step+j*channels+k]=111;

  • 相关阅读:
    3503: [Cqoi2014]和谐矩阵
    2734: [HNOI2012]集合选数
    P3900 [湖南集训]图样图森破
    4557: [JLoi2016]侦察守卫
    牛客OI周赛6-提高组 B 践踏
    连续区间的最大公约数
    Wannafly挑战赛5 D. 子序列
    牛客国庆集训派对Day1 B. Attack on Titan
    4538: [Hnoi2016]网络
    [SHOI2015]超能粒子炮·改
  • 原文地址:https://www.cnblogs.com/freedesert/p/3072465.html
Copyright © 2011-2022 走看看