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
}