这个问题是关于在VS2008 express中使用c ++的opencv.
我做的很简单.试图从相机图像中获取皮肤值.
正如您在屏幕截图中看到的,相机图像看起来相当不错.我正在将它转换为HSV并将Hue通道与之后的皮肤值分开.但是Hue频道看起来太吵了,太多了.HSV图像窗口也显示信息的劣化.为什么会这样?以及如何解决这个问题.如果我们不能通过某种平滑去除噪音?代码如下:
#include <opencv2/opencv.hpp>
int main(){
cv::VideoCapture cap(0); // open the default camera
cv::Mat hsv, bgr, skin;//make image & skin container
cap >> bgr;
//cvNamedWindow("Image");
//cvNamedWindow("Skin");
//cvNamedWindow("Hue");
cv::cvtColor(bgr, hsv, CV_BGR2HSV);
std::vector<cv::Mat> channels;
cv::split(hsv, channels);
cv::Mat hue;
hue = channels[0];
cv::imshow("Image", bgr);cvMoveWindow("Image",0,0);
cv::imshow("HSV", hsv);cvMoveWindow("HSV",660,0);
cv::imshow("Hue", hue);cvMoveWindow("Hue",0,460);
cvWaitKey(0);//wait for key press
return 0;
}
Run Code Online (Sandbox Code Playgroud)
