• 大小: 15.95MB
    文件类型: .zip
    金币: 1
    下载: 0 次
    发布日期: 2023-07-21
  • 语言: 其他
  • 标签: opencv  c++  机器视觉  

资源简介

颜色识别中,我们一直要调整的参数,毫无疑问就是颜色的阈值了。 阈值变化太难受了·,与外界光线,天气等等有关,每次使用颜色识别的代码基本上都要去改其参数。想想都头大。所以,写此个快速查找颜色阈值的小助手,屡试不爽。可以轻易查找出颜色阈值。

资源截图

代码片段和文件信息

#include 
#include 
using namespace cv;
using namespace std; 

//-----------------------------------【全局函数声明部分】--------------------------------------
// 描述:全局函数声明
//-----------------------------------------------------------------------------------------------
static void ContrastAndBright(int void *);
void   ShowHelpText();

//-----------------------------------【全局变量声明部分】--------------------------------------
// 描述:全局变量声明
//-----------------------------------------------------------------------------------------------
int hmin=0; 
int hmax=180; 
int smin=0; 
int smax=255; 
int vmin=0; 
int vmax=255; 
int i=0;
char key;
Mat imgHSV;
Mat imgThresholded;
Mat g_srcImageg_dstImage;
Mat result(Size(600100)CV_8UScalar(255));//定义一个空白的图片
//-----------------------------------【main( )函数】--------------------------------------------
// 描述:控制台应用程序的入口函数,我们的程序从这里开始
//-----------------------------------------------------------------------------------------------
int main(   )
{
//改变控制台前景色和背景色
system(“color 2F“);  
ShowHelpText();
cout<<“按ESC键退出程序按空格键确定利用当前帧“;

//从摄像头读入视频
    Mat frame;
    VideoCapture  capture(0);
    if(!capture.isOpened())
    {
       cout<<“摄像头打开失败!“<       return -1;
    }
char filename[200];
while(1)
{
key = waitKey(50);
capture>>frame;
imshow(“【视频】“frame);

if(key == 27)
break;//按ESC键退出程序
if(key == 32)//按空格键进行拍照
{
sprintf(filename“1.jpg“);
imwrite(filenameframe);//图片保存到本工程目录中
break;}

}

g_srcImage = imread(“1.jpg“);
resize(g_srcImageg_srcImageSize(320240));
if( !g_srcImage.data ) { printf(“Oh,no,读取g_srcImage图片错误~! \n“); return false; }
g_dstImage = Mat::zeros( g_srcImage.size() g_srcImage.type() );
//图片预处理

    vector hsvSplit;  
    cvtColor(g_srcImage imgHSV COLOR_BGR2HSV);  //Convert the captured frame from BGR to HSV 
                                                   //因为我们读取的是彩色图,直方图均衡化需要在HSV空间做
    split(imgHSV hsvSplit);                       //返回一个下标从零开始的一维数组  
    equalizeHist(hsvSplit[2]hsvSplit[2]);         //直方图均衡化,,用于提高图像的质量 
    merge(hsvSplitimgHSV);                        //merge 与split 函数相反。可以将多个单通道图像合成一幅多通道图像。

//创建窗口
namedWindow(“【效果图窗口】“1);//WINDOW_NORMAL
//创建轨迹条
createTrackbar(“hmin:“ “【效果图窗口】“&hmin 180ContrastAndBright );
createTrackbar(“hmax:“ “【效果图窗口】“&hmax 180ContrastAndBright );
createTrackbar(“smin:“ “【效果图窗口】“&smin 255ContrastAndBright );
createTrackbar(“smax:“ “【效果图窗口】“&smax 255ContrastAndBright );
createTrackbar(“vmin:“ “【效果图窗口】“&vmin 255ContrastAndBright );
createTrackbar(“vmax:“ “【效果图窗口】“&vmax 255ContrastAndBright );
createTrackbar(“右滑输出:“ “【效果图窗口】“&i1ContrastAndBright );
//调用回调函数
ContrastAndBright(hmin0);
ContrastAndBright(hmax0);
ContrastAndBright(smin0);
ContrastAndBright(smax0);
ContrastAndBright(vmin0);
ContrastAndBright(vmax0);


//输出一些帮助信息
cout<

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     目录           0  2018-12-23 21:28  快速寻找颜色阈值小助手\
     目录           0  2018-12-23 21:28  快速寻找颜色阈值小助手\Debug\
     文件       80384  2018-12-23 21:08  快速寻找颜色阈值小助手\Debug\利用滑动条寻找颜色阈值.exe
     文件      654884  2018-12-23 21:08  快速寻找颜色阈值小助手\Debug\利用滑动条寻找颜色阈值.ilk
     文件     1674240  2018-12-23 21:08  快速寻找颜色阈值小助手\Debug\利用滑动条寻找颜色阈值.pdb
     目录           0  2018-12-23 21:28  快速寻找颜色阈值小助手\ipch\
     目录           0  2018-12-23 21:28  快速寻找颜色阈值小助手\ipch\利用滑动条寻找颜色阈值-f9a1d1a5\
     文件    57212928  2018-12-23 21:07  快速寻找颜色阈值小助手\ipch\利用滑动条寻找颜色阈值-f9a1d1a5\利用滑动条寻找颜色阈值-1e0dfec2.ipch
     目录           0  2018-12-23 21:28  快速寻找颜色阈值小助手\利用滑动条寻找颜色阈值\
     文件       71762  2018-12-23 21:08  快速寻找颜色阈值小助手\利用滑动条寻找颜色阈值\1.jpg
     文件       67347  2018-12-23 11:54  快速寻找颜色阈值小助手\利用滑动条寻找颜色阈值\111.jpg
     目录           0  2018-12-23 21:28  快速寻找颜色阈值小助手\利用滑动条寻找颜色阈值\Debug\
     文件       11926  2018-12-23 21:08  快速寻找颜色阈值小助手\利用滑动条寻找颜色阈值\Debug\CL.read.1.tlog
     文件         330  2018-12-23 21:08  快速寻找颜色阈值小助手\利用滑动条寻找颜色阈值\Debug\CL.write.1.tlog
     文件         646  2018-12-23 21:08  快速寻找颜色阈值小助手\利用滑动条寻找颜色阈值\Debug\cl.command.1.tlog
     文件           2  2018-12-23 21:08  快速寻找颜色阈值小助手\利用滑动条寻找颜色阈值\Debug\link-cvtres.read.1.tlog
     文件           2  2018-12-23 21:08  快速寻找颜色阈值小助手\利用滑动条寻找颜色阈值\Debug\link-cvtres.write.1.tlog
     文件           2  2018-12-23 21:08  快速寻找颜色阈值小助手\利用滑动条寻找颜色阈值\Debug\link.11652-cvtres.read.1.tlog
     文件           2  2018-12-23 21:08  快速寻找颜色阈值小助手\利用滑动条寻找颜色阈值\Debug\link.11652-cvtres.write.1.tlog
     文件           2  2018-12-23 21:08  快速寻找颜色阈值小助手\利用滑动条寻找颜色阈值\Debug\link.11652.read.1.tlog
     文件           2  2018-12-23 21:08  快速寻找颜色阈值小助手\利用滑动条寻找颜色阈值\Debug\link.11652.write.1.tlog
     文件           2  2018-12-23 21:08  快速寻找颜色阈值小助手\利用滑动条寻找颜色阈值\Debug\link.14720-cvtres.read.1.tlog
     文件           2  2018-12-23 21:08  快速寻找颜色阈值小助手\利用滑动条寻找颜色阈值\Debug\link.14720-cvtres.write.1.tlog
     文件           2  2018-12-23 21:08  快速寻找颜色阈值小助手\利用滑动条寻找颜色阈值\Debug\link.14720.read.1.tlog
     文件           2  2018-12-23 21:08  快速寻找颜色阈值小助手\利用滑动条寻找颜色阈值\Debug\link.14720.write.1.tlog
     文件           2  2018-12-23 21:08  快速寻找颜色阈值小助手\利用滑动条寻找颜色阈值\Debug\link.15180-cvtres.read.1.tlog
     文件           2  2018-12-23 21:08  快速寻找颜色阈值小助手\利用滑动条寻找颜色阈值\Debug\link.15180-cvtres.write.1.tlog
     文件           2  2018-12-23 21:08  快速寻找颜色阈值小助手\利用滑动条寻找颜色阈值\Debug\link.15180.read.1.tlog
     文件           2  2018-12-23 21:08  快速寻找颜色阈值小助手\利用滑动条寻找颜色阈值\Debug\link.15180.write.1.tlog
     文件           2  2018-12-23 21:08  快速寻找颜色阈值小助手\利用滑动条寻找颜色阈值\Debug\link.15328-cvtres.read.1.tlog
     文件           2  2018-12-23 21:08  快速寻找颜色阈值小助手\利用滑动条寻找颜色阈值\Debug\link.15328-cvtres.write.1.tlog
............此处省略55个文件信息

评论

共有 条评论