【OpenCV 学习之路】(7)滑动条的使用之二

先看效果图:
对摄像头采集的图片处理

Talk is cheap,show you the code.

#include<opencv2\core\core.hpp>  
#include<opencv2\highgui\highgui.hpp>  
#include<opencv2\imgproc\imgproc.hpp>  
using namespace cv;

void on_Contrast(int, void*);

VideoCapture cap(0);
Mat frame;
int contrast = 100, bright = 50;//0-3.0,0-2.0 

int main()
{
    cap >> frame;
    namedWindow("原图", 1);
    namedWindow("效果图", 1);
    while (1)
    {
        cap >> frame;
        imshow("原图", frame);
        createTrackbar("对比度", "效果图", &contrast, 300, on_Contrast);
        createTrackbar("明亮度", "效果图", &bright, 200, on_Contrast);
        on_Contrast(contrast, 0);
        on_Contrast(bright, 0);
        waitKey(1);
    }
    waitKey(0);
    return 0;
}

void on_Contrast(int, void*)
{
    for (int y = 0; y < frame.rows; y++)
    {
        for (int x = 0; x < frame.cols; x++)
        {
            for (int c = 0; c < 3; c++)
            {
                frame.at<Vec3b>(y, x)[c] = saturate_cast<uchar>(frame.at<Vec3b>(y, x)[c] * contrast*0.01 + bright);
            }
        }
    }
    imshow("效果图", frame);
}

学会了对图片(【OpenCV 学习之路】(6)滑动条的使用之一)进行对比度,明亮度操作之后,再来看对视频的操作会发现很简单。

在这个过程中遇到的问题不大,但要注意的是:
  1. 循环里面一定要加上延时,不然运行不了,不知道为什么。
  2. 画面有延迟,应该是遍历像素的方法问题。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值