opencv学习(十九)图像金字塔和图像尺寸大小处理resize()//pryUp()//pryDown()//阈值化threshold()//自动阈值化adaptiveThreshold()

0,resize()调整图像大小

这里写图片描述
这里写图片描述
这里写图片描述
这里写图片描述
这里写图片描述

1,pryUp()向上采样

这里写图片描述
这里写图片描述
这里写图片描述

2,pryDown()向下采样

这里写图片描述这里写图片描述

实例

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

Mat g_srcimage, g_dstimage2, g_tmpimage;

int main()
{
    g_srcimage = imread("D://1.jpg");
    imshow("window_name", g_srcimage);
    g_tmpimage = g_srcimage;
    g_dstimage2 = g_tmpimage;
    int key = 0;
cout <<" 请输入字符;"<<""<<endl<< endl;
        while (1)
        {
            key = waitKey(9);

                switch (key)
                {
                case'a':
                    printf("yes!\n");
                    return 0;
                    break;

                case'1':
                    pyrDown(g_tmpimage, g_dstimage2, Size(g_tmpimage.cols / 2, g_tmpimage.cols / 2));
                    break;

                case'2':
                    pyrUp(g_tmpimage, g_dstimage2, Size(g_tmpimage.cols * 2, g_tmpimage.cols * 2));
                    break;
                case'3':
                    resize(g_tmpimage, g_dstimage2, Size(g_tmpimage.cols * 2, g_tmpimage.cols * 2));
                    break;
                case'b':
                    return 0;
                    break;
                }
                imshow("window_name", g_dstimage2);
                g_tmpimage = g_dstimage2;
        }

        return 0;
}

阈值化实例

1,阈值化函数threshold()

这里写图片描述
这里写图片描述
这里写图片描述

2,自动阈值化

这里写图片描述
这里写图片描述

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

//全局变量声明
Mat g_srcimage, g1_dstimage, g_grayimage;
int g_nThresholdValue = 100;//阈值
int g_nType = 3;



//轨迹条的回调函数(静态函数,只适用于本文件)
static void on_Threshold(int, void*);


//主函数
int main()
{
    system("color 5E");
    g_srcimage = imread("D://1.jpg", 1);
    if (!g_srcimage.data) { printf("错错错\n"); return false; }

    cvtColor(g_srcimage, g_grayimage, COLOR_RGB2GRAY);

    //显示原图
    namedWindow("窗口", WINDOW_AUTOSIZE);


    //1模式

    createTrackbar("模式:", "窗口", &g_nType, 4, on_Threshold);



    //2参数值

    createTrackbar("参数值:", "窗口", &g_nThresholdValue, 255, on_Threshold);

    //初始化自定义函数
    on_Threshold(0, 0);


    //输出提示信息
    cout << endl << "滑动滚动条观察图像效果\n\n"
        << "按下q键退出";
    while (char(waitKey(1)) != 'q') {}
    return 0;



}
//static void on_Threshold(int, void*)函数定义
static void on_Threshold(int, void*)
{
    threshold(g_grayimage, g1_dstimage, g_nThresholdValue, 255, g_nType);
    imshow("窗口", g1_dstimage);//refresch the function of image
}

这里写图片描述

猜你喜欢

转载自blog.csdn.net/qq_41553038/article/details/80075102