opencv4图像基本变化

#include
#include
using namespace cv;
using namespace std;
Mat imgTranslate(Mat &img,int x,int y)//ƽ�ƺ���������һ:ԭͼ��;������:x�����ƫ��;������:y�����ƫ��;
{
    int rows=img.rows+y;
    int cols=img.cols+x;
    Mat out=Mat::zeros(rows,cols,img.type());//����һ��ȫ�ھ���;
    for(int i=0;i<rows;i++)
    {
        for(int j=0;j<cols;j++)
        {
            int xx=x+j;//xx=x�����ƫ��+��ǰ����;
            int yy=y+i;//yy=y�����ƫ��+��ǰ����;
            if(xx>=0&&yy>=0&&xx<cols&&yy<rows)
            {
                out.at<Vec3b>(yy,xx)=img.at<Vec3b>(i,j);//�������Ӧ��ϵ;
            }
        }
    }
    return out;
}

main()
{
    Mat img=imread("1.jpg");
    Mat out;
    //ͼ������ţ�
 /*   resize(img,out,Size(300,300));//ԭͼ����512*512��������СΪ300*300
    imshow("ԭͼ",img);
    imshow("��С",out);
    imwrite("suoxiao.png",out);
    resize(img,out,Size(800,800));//�Ŵ�Ϊ800*800;
    imshow("�Ŵ�",out);
    imwrite("fangda.png",out);*/
    
    //ͼ���ƫ�ƣ�
   /* out=imgTranslate(img,60,40);//ˮƽƫ��60,��ֱƫ��40;
    imshow("ԭͼ",img);
    imshow("ƫ�ƺ�",out);
    imwrite("pianyi.png",out);*/

    //ͼ�����ת:
  /*  Mat Mx;
    int w=img.cols;
    int h=img.rows;
    Point2f center=Point2f(w/2,h/2);//ȷ����ת����
    double angle=45;//��ת�Ƕ�
    double scale=1;//���ų߶�
    Mx=getRotationMatrix2D(center,angle,scale);//��ȡĿ����� 2*3;
    double cos1=abs(Mx.at(0,0));
    double sin1=abs(Mx.at(0,1));
    int nw=cos1*w+sin1*h;//ȷ���¿��Ĵ�С
    int nh=cos1*h+sin1*w;//ȷ���¸ߵĴ�С
    Mx.at(0,2)+=(nw/2-w/2);//�������ĵ�ˮƽƽ�Ƶľ���
    Mx.at(1,2)+=(nh/2-h/2);//�������ĵ���ֱƽ�Ƶľ���
    warpAffine(img,out,Mx,Size(nw,nh));
    imshow("ԭͼ",img);
    imshow("��ת��",out);
    imwrite("xuanzhuan.png",out);*/

    //���ε�͸�ӱ任:
    Mat src=imread("2.jpg");
    Point2f srcp[4]={{61,257},{378,240},{121,727},{624,599}};//���θ���������������������ԭͼ�е�����
    Point2f outp[4]={{0,0},{660,0},{0,880},{660,880}};//˳��ͬ�ϣ������ͼ�е�����

    Mat Mx=getPerspectiveTransform(srcp,outp);//��ñ任����
    warpPerspective(src,out,Mx,Size(660,880),INTER_LINEAR);
    imshow("ԭͼ",src);
    imshow("͸�ӱ任��",out);
    imwrite("toushi.png",out);
    waitKey(0);
}

你可能感兴趣的:(数据结构刷题记录,高级数据结构,笔记,opencv,计算机视觉,人工智能)