Opencv入门(一)

/**********************************************************************************

*本人初学Opencv c++和python版本,所用的Opencv版本是3.2,如有不当之处,

*望各位牛人指出,欢迎交流学习,邮箱844104668@qq.com.

*如有好的计算机视觉资源望分享,哈哈哈哈。。。。。。。。

***********************************************************************************/

#include <iostream>

#include <opencv2/opencv.hpp>
using namespace std;
using namespace cv;

/*改变图像的亮度和对比度alpha取值0-1,beta取值0-100*/
void contrast_brightness(Mat src,Mat dst,double alpha,int beta)
{
src.convertTo(dst,-1,alpha,beta);
return ;

}

/*灰度图像自我实现*/

void cvtCOLOR(Mat src,Mat dst)

{
float B,G,R;
for(int i=0;i<src.rows;i++)
{
uchar *dt = dst.ptr<uchar>(i);
for(int j=0;j<src.cols;j++)
{
B=src.at<Vec3b>(i,j)[0];
G=src.at<Vec3b>(i,j)[1];
R=src.at<Vec3b>(i,j)[2];
dt[j] = R*0.299 + G*0.587 + B*0.114;
}
}

}

/*图像上下翻转*/

void up_down(Mat src,Mat dst)
{
for(int i=0;i<src.rows;i++)
{
Vec3b *dt = dst.ptr<Vec3b>(src.rows-i-1);
for(int j=0;j<src.cols;j++)
{
dt[j][0] = src.at<Vec3b>(i,j)[0];
dt[j][1] = src.at<Vec3b>(i,j)[1];
dt[j][2] = src.at<Vec3b>(i,j)[2];
}
}

}

/*图像左右翻转*/

void left_right(Mat src,Mat dst)
{
int w=src.cols;
for(int i=0;i<src.rows;i++)
{
Vec3b *dt = dst.ptr<Vec3b>(i);
for(int j=0;j<src.cols;j++)
{
dt[w-j] = src.at<Vec3b>(i,j);
}
}
}


int main(int argc,char **argv)
{
if(argc!=2)
{
cout<<"input like this:./... .jpg"<<endl;
exit(0);
}
Mat M = imread(argv[1]);

//创建一个和图像大小一致的3通道矩阵,测试灰度图像时要把CV_8UC3改为一通道CV_8UC1
Mat data(M.rows,M.cols,CV_8UC3);
//1、cvtCOLOR(M,data);
//2、up_down(M,data);
//3、left_right(M,data);
contrast_brightness(M,data,0.3,100);
imshow("orignal",M);
imshow("huidu",data);
waitKey(0);
return 0;
}

//原图                                                  //调整过的对比度和亮度的图像       

      

//灰度图像                                           //图像左右翻转                               //图像上下翻转

               

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值