http://www.opencv.org.cn/forum.php?mod=viewthread&tid=36980&page=1
http://blog.csdn.net/chenxun_2010/article/details/38439129
CyberLink YouCam是总部位于中国台湾省的讯连科技CyberLink旗下一款摄像头增加特效的软件,通过这个软件,可以让你的摄像头显示出很特殊效果。趣味写真随时玩、网路视讯更精彩。
最新版本YouCam 5是一套强大的视讯互动应用软件,能满足您在视讯使用时所需的一切功能。无论是与朋友视讯交谈时,增添乐趣的趣味特效功能,或是功能强大的简报工具、视讯会议工具等....,YouCam 5都能全部包办,全面为您的工作及娱乐生活精彩加分!
功能
编辑
1.酷炫的互动式特效
可尽情发挥创意、制作专属头像; 丰富的头像特效范本; 五彩缤纷的炫丽特效; 神奇的3D 虚拟物件; 利用头部配件特效增加聊天趣味;2.丰富有趣的视讯特效
让聊天更生动活泼的情绪特效; 利用变形特效自娱娱人;
3.与更多人一同分享! 将影片或相片直接上传至Face book;
上传宽萤幕格式影片至YouTube;
支援各式即时通讯工具,如qq等。
4.视讯监控功能
5.线上视讯简报CyberLink YouCam
6.录制HD高画质影片
7.双视讯画面支援
8.脸孔登入功能- 特别适合家庭与个人用户
9.Face-out (智慧登出锁定)功能
10.脸部追踪技术
词条标签:
软件 , 计算机学
新人求教一个绿色背景提取红色小球的问题
发表于 2014-9-13 16:35:50 | 只看该作者 |只看大图
|倒序浏览 |阅读模式
如图,红球上有灯光照射的亮斑,我用open算法处理后亮斑消失,但颜色还是不均匀,我用的是rgb空间提取红色进行二值化的,所以设的红色范围比较宽,这样容易受其他干扰,请教一下怎么让球的颜色均匀一点,或者用hsv空间会不会好点?(我不会用hsv提取红色,转到hsv后图片就会变得很奇怪。。。。。。)
发表于 2014-9-17 16:58:33
|
只看该作者
看看这个 #include "stdafx.h" #include <cv.h> #include <cxcore.h> #include <highgui.h> #include <stdio.h> #include <io.h> #include <iostream> #include <stdio.h> #include "opencv2/highgui/highgui.hpp" #include "opencv2/imgproc/imgproc.hpp" #include <math.h> #include <string> #include <time.h> using namespace cv; using namespace std; int main() { cv::Mat ma = imread("C:\\ball.jpg",0); cv::Mat mb = imread("C:\\ball.jpg",01); vector<std::vector<cv: oint>> contours; cv::threshold(ma,ma,160,255,cv::THRESH_BINARY); cv::imshow("ball",ma); cv::findContours(ma,contours,0,1); int cmax = 0; //在这种循环下面,最后一个就是最大的数据 vector<vector< oint>>::const_iterator itc = contours.begin(); while(itc!=contours.end()) { if (itc->size()>cmax) { cmax = itc->size(); ++itc; } else { itc = contours.erase(itc); } } if (contours.size() <= 0)//如果没有数据 { return 0;//error } drawContours(mb,contours,-1,Scalar(255),1); cv::imshow("ballb",mb); cvWaitKey(0); return 0; } |
| | |
|
| | |
|
- #include "stdafx.h"
- #include <cv.h>
- #include <cxcore.h>
- #include <highgui.h>
- #include <stdio.h>
- #include <io.h>
- #include <iostream>
- #include <stdio.h>
- #include "opencv2/highgui/highgui.hpp"
- #include "opencv2/imgproc/imgproc.hpp"
- #include <math.h>
- #include <string>
- #include <time.h>
- using namespace cv;
- using namespace std;
- int main()
- {
- cv::Mat ma = imread("C:\\ball.jpg",0);
- cv::Mat mb = imread("C:\\ball.jpg",01);
- vector<std::vector<cv::Point>> contours;
- cv::threshold(ma,ma,160,255,cv::THRESH_BINARY);
- cv::imshow("ball",ma);
- cv::findContours(ma,contours,0,1);
- int cmax = 0;
- //在这种循环下面,最后一个就是最大的数据
- vector<vector<Point>>::const_iterator itc = contours.begin();
- while(itc!=contours.end())
- {
- if (itc->size()>cmax)
- {
- cmax = itc->size();
- ++itc;
- }
- else
- {
- itc = contours.erase(itc);
- }
- }
- if (contours.size() <= 0)//如果没有数据
- {
- return 0;//error
- }
- drawContours(mb,contours,-1,Scalar(255),1);
- cv::imshow("ballb",mb);
- cvWaitKey(0);
- return 0;
- }
复制代码
|
| | |
|
| | |
|
4#
 楼主
|
发表于 2014-9-20 17:54:18
|
只看该作者
太感谢了,这是一个新思路呀, |
| | |
|
| | |
|
6#
 楼主
|
发表于 2014-9-21 16:13:57
|
只看该作者
| | |
|
| | |
|
在颜色空间上面进行检测是一个思路,像让颜色均匀一点儿的话,可以进行分别对三个通道L0Smooth(这个没有自带的,需要看算法自己写),然后用大津法进行二值化,提取轮廓线,用fitellipse或者其他拟合函数进行圆或者椭圆的拟合就行。 |
| | |
|
| | |
|
8#
 楼主
|
发表于 2014-9-24 08:06:43
|
只看该作者
谢谢指点,我试试看能不能做到 |
| | |
|
| | |
|
对于提取颜色相对比较纯的物体,建议吧图像RGB转HSV再分析。单纯的RGB不是很容易提取的。求出小球的Histogram,后面只要是类似于红色小球的都会被提取出来。建议参考OpenCV里面的camShift,我也是最近有个项目需求才注意这个的,具体就是在一块PCB板子上面提取出锡膏和焊盘的位置在检测锡膏大小高度等 |
| | |
|
| | |
|