opencv与c++ 阈值操作显示窗口

OPENCV阈值显示窗口

基于opencv与c++
用于对所要操作的图像的阈值范围进行可视化;
通过拖动阈值的上限和下限滑条来得到所需区域的阈值范围(如,对车牌字符范围的提取)
具体操作如下:

#include<opencv2/opencv.hpp>
#include<opencv2/core/core.hpp>
#include<opencv2/highgui/highgui.hpp>
#include<iostream>
using namespace cv;
using namespace std;
#define WINDOW_NAME "灰度阈值操作"

void on_Threshold(int,void*);
int threshold_lower =0;     //上限滑条值
int threshold_up = 255;     //下限滑条值
const int MaxthresholdValue = 255;  // 滑条的最大值

Mat image;   //原图像
Mat gray;    //灰度图
Mat result;  //显示结果
int main(int argc,char** argv)
{   
    image = imread("./demo10/02.jpeg",1);    //读取原图像
    cvtColor(image,gray,COLOR_BGR2GRAY);     //转换为灰度图像
    namedWindow(WINDOW_NAME,1);              //开启一窗口
    imshow(WINDOW_NAME,gray);                //最初显示原灰度图
    //创建滑动条来控制阈值
    createTrackbar("阈值上限", WINDOW_NAME, &threshold_lower, MaxthresholdValue, on_Threshold);  //创建下限滑条
    createTrackbar("阈值下限", WINDOW_NAME, &threshold_up, MaxthresholdValue, on_Threshold);     //创建上限滑条
    //初始化 阈值回调函数
    on_Threshold(0,0);
    waitKey(0);
    return 0;
}
// 阈值回调函数
void on_Threshold(int,void*)
{   
    //调用阈值函数
    threshold(gray,result,threshold_lower,0,THRESH_TOZERO);        //低于下限置0
    threshold(result,result,threshold_up,0,THRESH_TOZERO_INV);        //高于上限置0
    //更新效果图
    imshow(WINDOW_NAME,result);                                    
}

结果如下:
在这里插入图片描述

注:主要参考《OpenCV3编程入门》;车图片来源于网络.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值