4月 142013
 

Your ads will be inserted here by

Easy AdSense.

Please go to the plugin admin page to
Paste your ad code OR
Suppress this ad slot.

假设要访问第k通道、第i行、第j列的像素
cvGet2D用于获取对应点的数据
cvSet2D用于设置对应点的数据
s.val(i)
获取i通道的值
s.val(i,data)
设置i通道的值为data

public class test { 
    public static void main(String args[]){ 
    IplImage img = cvLoadImage("D:\\car.bmp",3); 
    if (null == img)//如果读入失败,退出程序 
    System.exit(1); 
    /*创建一个单通道的图像*/
    IplImage imgc = cvCreateImage(cvSize(img.width(),img.height()),IPL_DEPTH_8U,0);
    /*
    CvScalar就是一个可以用来存放4个double数值的数组;一般用来存放像素值(不一定是灰度值哦)的,最多可以存
    放4个通道的。
    typedef struct CvScalar
    {
      double val[4];
      }CvScalar; 
    */
    CvScalar s,to=null;
    int i=10,j=5;
    s = cvGet2D(img,i,j); //注意i表示y坐标,j表示x坐标
    System.out.printf("intensity=%f\n",s.val(0));
    cvCvtColor(img,imgc,CV_BGR2GRAY);
    for(i=0;i<img.height();i++)
        for(j=0;j<img.width();j++)
        {  
            /*灰度变换
            s = cvGet2D(img,i,j); 
            to = cvGet2D(imgc,i,j);
            to.val(0,(int)(s.val(0)*0.114+s.val(1)*0.587+s.val(2)*0.299));
            cvSet2D(imgc,i,j,s);//写到图片里
            */
            /*二值化处理*/
            s = cvGet2D(imgc,i,j);
            if(s.val(0)&gt;100)
            {
                s.val(0,256); 
            }
            else
            {
                s.val(0,0); 
            }
        cvSet2D(imgc,i,j,s);//写到图片里 
        }

    s = cvGet2D(img,5,10);
    System.out.printf("intensity=%f\n",s.val(0));
    //创建一个窗口,标题为Example 
    cvNamedWindow("Example",CV_WINDOW_AUTOSIZE); 
    //在窗口Example中显示图片
    cvShowImage("Example",imgc); 
    //暂停程序,等待用户触发一个按键
    cvWaitKey(0); 
    //释放图像所分配的内存 
    cvReleaseImage(imgc); 
    //销毁窗口 
    cvDestroyWindow("Example"); 
} 

}

对数变换

s = cvGet2D(img,i,j);
s.val(0,Math.log(s.val(0)));
cvSet2D(imgc,i,j,s);//写到图片里

 Leave a Reply

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

(required)

(required)