0
点赞
收藏
分享

微信扫一扫

opencv调整图片



opencv调整图片_进度条




// opencv2.cpp : 定义控制台应用程序的入口点。
//#include "stdafx.h"
#include <vector>
#include <stdio.h>
#include "opencv2/imgproc/imgproc.hpp"
#include "opencv2/highgui/highgui.hpp"
#include <iostream>using namespace cv;
using namespace std;Mat img;
int Progress_bar_cont = 100; //轨迹条滑块对应的值,给初值160static void Progress_bar(int, void*)
{
Mat bw = Progress_bar_cont < 128 ? (img < Progress_bar_cont) : (img > Progress_bar_cont);
//定义点和向量
vector<vector<Point> > contours;
vector<Vec4i> hierarchy;
//查找轮廓
findContours(bw, contours, hierarchy, CV_RETR_CCOMP, CV_CHAIN_APPROX_SIMPLE);
//初始化dst
Mat dst = Mat::zeros(img.size(), CV_8UC3);
//开始处理
if (!contours.empty() && !hierarchy.empty())
{
//遍历所有顶层轮廓,随机生成颜色值绘制给各连接组成部分
int idx = 0;
for (; idx >= 0; idx = hierarchy[idx][0])
{
Scalar color((rand() & 255), (rand() & 255), (rand() & 255));
//绘制填充轮廓
drawContours(dst, contours, idx, color, CV_FILLED, 8, hierarchy);
}
}
//显示窗口
imshow("Connected Components", dst);
} //-----------------------------------【main( )函数】--------------------------------------------
// 描述:控制台应用程序的入口函数,我们的程序从这里开始
//-----------------------------------------------------------------------------------------------
int main()
{
system("color 3F");
//载入图片
img = imread("test.jpg", 0);//加载灰度图像
if (!img.data) { printf("读取错误~! \n"); return -1; }
//显示原图
namedWindow("Image", 1);
imshow("Image", img);
waitKey(30);
//创建处理窗口
namedWindow("Connected Components", 1);
//创建轨迹条,第一个参数是创建进度条的名称,
//第二个是附加到哪个窗口,第三个是初始值,第四个是最大值,最后是回调函数
createTrackbar("Threshold", "Connected Components", &Progress_bar_cont, 255, Progress_bar);
Progress_bar(Progress_bar_cont, 0);//轨迹条回调函数
waitKey(30);//延时,否则显示不出来
//获取进度条的值getTrackbarPos()第一个参数,是进度条的名称,第二个是依赖的窗口
int a =getTrackbarPos("Threshold", "Connected Components"); getchar();
return 0;
}



举报

相关推荐

0 条评论