c++ opencv读取图片像素值并进行加密

使用opencv 获取图片像素值 并分别对RGB值进行八位01串的加解密

环境:visual studio、opencv(需要安装)

#include <iostream>
#include <opencv2/core/core.hpp>
#include <opencv2/highgui/highgui.hpp>
using namespace std;
//#define key 0xa9
int key[8]={0,1,0,0,0,0,1,0};
using namespace cv;
int main(int argc, char* argv[])
{
    IplImage *img = cvLoadImage("00.jpg",1);
	//cvSaveImage("test111.jpg",img);
    CvScalar s;
	cvNamedWindow("Image",1);
	cvShowImage("Image",img);
	int flag=1;
    for(int ii = 0;ii < img->height;ii++)
	{
        for(int jj = 0;jj < img->width;jj++)
		{
		   s = cvGet2D(img,ii,jj); // get the (i,j) pixel value
		   int col[3][8];
		   memset(col,0,sizeof(col));
		   for(int i=0;i<3;i++)
		   {
			   int num=0;
			   if(flag)
				   cout<<"像素值:  "<<(int)s.val[i]<<endl;
			   while(((int)s.val[i]))
			   {
				   col[i][7-num]=((int)s.val[i])%2;
				   //if(flag) cout<<"模的值: "<<col[i][7-num]<<endl;
				   s.val[i]=s.val[i]/2.0;
				   //if(flag) cout<<"s.val[i]  "<<(int)s.val[i]<<endl;
				   num++;
			   }
			   for(int j=0;j<8;j++)
			   {
				  if(flag)
					cout<<col[i][j];
				  col[i][j]=col[i][j]^key[j];
			   }
			   if(flag)
				cout<<endl;
			   int sum=0;
			   int x=1;
			   for(int j=0;j<8;j++)
			   {
				   if(flag)
					   cout<<col[i][7-j];
				   sum+=col[i][7-j]*x;
				   x*=2;
			   }

			   if(flag)
				   cout<<"\nsum   "<<sum<<endl;
			   s.val[i]=sum;
			   
		   }
		   flag=0;
		   cvSet2D(img,ii,jj,s);//set the (i,j) pixel value
		   
        }
    }
    //cvShowImage("Image",img);
	cvSaveImage("01.jpg",img);
    cvWaitKey(0); //等待按键
 
    cvDestroyWindow( "Image" );//销毁窗口
  //cvReleaseImage( &img ); //释放图像
	//system("pause");
    return 0;
}



   

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值