opencv 之图像反色

#include<stdio.h>
#include<stdlib.h>
#include<math.h>
#include "cv.h"
#include "highgui.h"

int main( int argc, char** argv )
{
    int i,j,k;
    //载入图像
    IplImage * img=cvLoadImage(argv[1],1);
CvScalar s;
int height     = img->height;
int width      = img->width;
int channel = img->nChannels;
    printf("the image is %d X %d wiht %d channels",height,width,channel);
    for(i=0;i<height;i++)
    for(j=0;j<width;j++)

    {
        s=cvGet2D(img,i,j); // get the (i,j) pixel value
        for(k=0;k<channel;k++)
        s.val[k]=255-s.val[k];
        cvSet2D(img,i,j,s); // set the (i,j) pixel value
   }
   cvNamedWindow( "girl", CV_WINDOW_AUTOSIZE);//创建窗口
        cvShowImage( "girl", img );//显示图像
        cvWaitKey(0); //等待按键
        cvDestroyWindow( "Image" );//销毁窗口
        cvReleaseImage( &img); //释放图像
    return -1;
}

方法二:


#include<math.h>
#include<stdlib.h>
#include<stdio.h>
#include "cv.h"
#include "highgui.h"
int main( int argc, char** argv )
{
    int height ,width ,step ,channels ;
         int i,j,k;
         uchar*data ;
         //char *filename="result.bmp";
         IplImage* Img; //声明IplImage指针
    //载入图像
        Img = cvLoadImage( argv[1],1);
height    = Img->height;
width     = Img->width;
step      = Img->widthStep/sizeof(uchar);
channels = Img->nChannels;
        data   = (uchar*)Img->imageData;
   printf("Processing a %d X %d image with %d channels/n",height,width,channels);

// 反色图像
   for(i=0;i<height;i++) for(j=0;j<width;j++) for(k=0;k<channels;k++)
   data[i*step+j*channels+k]=255-data[i*step+j*channels+k];//反色
   cvNamedWindow( "Image", 1 ); //创建窗口
        cvShowImage( "Image", Img ); //显示图像
        cvWaitKey(0); //等待按键
        cvSaveImage("filename.jpg",Img);
        cvDestroyWindow( "Image" );//销毁窗口
        cvReleaseImage( &Img ); //释放图像
        return 0;

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值