Quantcast
Channel: OpenCV Q&A Forum - Latest question feed
Viewing all articles
Browse latest Browse all 19555

How to make edges of OpenCV skin detection output “smooth”?

$
0
0
I did skin detection with OpenCV, it is based on HSV color space: cvtColor(src, hsv, CV_BGR2HSV); inRange(hsv, Scalar(0, 48, 80), Scalar(20, 255, 255), bw); vector> contours; vector hierarchy; findContours(bw, contours, hierarchy, CV_RETR_TREE, CV_CHAIN_APPROX_SIMPLE, Point(0, 0)); int s = findBiggestContour(contours); Mat output = Mat::zeros(src.size(), CV_8UC1); drawContours(output, contours, s, Scalar(255), -1, 8, hierarchy, 0, Point()); It finds the contour of the skin correctly, however, the edge of the output is not "smooth". Is there a way I can smooth the output contour (Please note "contours" is a vector of coordinates of the contour)? I want to "smooth" the output based on coordinates or black/white image, not by means of algorithms like "image blur". Any suggestions? It'll be kind if you show me some OpenCV codes. ![Original Image](/upfiles/1481706332100267.jpg) ![Program output and desired output](/upfiles/14817063637590582.png)

Viewing all articles
Browse latest Browse all 19555

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>