一、简单的亮度和对比度调整
原理:new_image(i,j) = alpha*image(i,j) + beta
new_image.at<Vec3b>(y,x)[c] =saturate_cast<uchar>( alpha*( image.at<Vec3b>(y,x)[c] ) + beta );
注意使用到saturate_cast函数限幅但Opencv有提供相应算法:image.convertTo(new_image, -1, alpha, beta);
二、给图像添加边界
#include "cv.h"
#include "highgui.h"
using namespace cv;
using namespace std;
int main(int argc,char *argv[])
{
Mat src,dst;
char type;
src=imread("fish.jpg");
imshow("src",src);
while (true)
{
type=(char)waitKey(0);
if (type=='c')
copyMakeBorder(src,dst,(int)(0.05*src.rows),(int)(0.05*src.rows),(int)(0.05*src.cols),(int)(0.05*src.cols),BORDER_CONSTANT,Scalar(0,0,255));
else if(type=='r')
copyMakeBorder(src,dst,(int)(0.05*src.rows),(int)(0.05*src.rows),(int)(0.05*src.cols),(int)(0.05*src.cols),BORDER_REPLICATE);
else break;
imshow("dst",dst);
}
cvWaitKey(0);
destroyAllWindows();
return 0;
}