Sunday, March 1, 2015

01 cvInRangeS 找出皮膚的顏色

目的:


cvInRangeS 找出特定的顏色

函數介紹:


cvInRangeS 找出特定的顏色,找到的話,就顯示為白色,不然為黑色。

參數值:


C: void cvInRangeS(const CvArr* src, CvScalar lower, CvScalar upper, CvArr* dst)



使用範例:


sample12-1_cvInRangeS_找出皮膚顏色

#include <opencv2/core/core.hpp>
#include <opencv2/highgui/highgui.hpp>
#include <opencv2/opencv.hpp>
#include <iostream>
#include <string.h>
#include <fstream>
using namespace cv;
int main(int argc,char **argv)

int width,height;
if(argc<=1)

std::cout<<"Error:Please Load a picture!"<<std::endl;
return 0;


IplImage *image;
//建立視窗
namedWindow("image",CV_WINDOW_AUTOSIZE);

//讀取圖片
image=cvLoadImage(argv[1]);
width=image->width;
height=image->height;

// 畫出正方形的外框

IplImage * img2=cvCreateImage(cvGetSize(image), IPL_DEPTH_8U, 1);

cvInRangeS(image, cvScalar(90,110,180), cvScalar(139,164,236), img2);

cvShowImage("image", image);

waitKey(0);
cvShowImage("image2", img2);

waitKey(0);

cvDestroyAllWindows();
return 0;



結果:


Screen Shot 2015-03-01 at 1.10.25 PM


補充資料:



01 cvInRangeS 找出皮膚的顏色
Parameters:
  • src – first input array.

  • lowerb – inclusive lower boundary array or a scalar.

  • upperb – inclusive upper boundary array or a scalar.

  • dst – output array of the same size as src and CV_8U type.

No comments:

Post a Comment