
原图是1:16的图像。直接简单调整图像会导致图像失真。需要通过裁切等方式先将图像调整为1:133,最简单的方式是将原图裁切为2080X1560,满意后直接调整为640480即可。如果调整成25001875,就需要补图。这看你的需要。
很简单,
1 使用RotatedRect minAreaRect(InputArray points)获取这个旋转矩形
2 将其四角存到某vector<Point>里面,变成一个轮廓,怎么获取四角参见>
从一个不是很通俗易懂的方式说明一下 先从高数的函数列收敛说起: 1)设fn(x)(n=1,2,3,)和f(x)是定义在区间D上的函数,若对D内任意一点x,都有 fn(x)-->f(x),则称函数列fn(x)(n=1,2,3,)在D上点点收敛到f(x) 2)但有时对于D上每一点x
Emgu CV是NET平台下对OpenCV图像处理库的封装,也就是NET版的OpenCV。两者的版本的话,你可以看一下你的Emgu CV安装文件里面的bin文件夹(我的是D:\Emgu\emgucv-windows-x86 2211150\bin)下引用的OpenCV的dll,可以由此判断出封装的是哪个版本。比如我的里面的opencv_core220dll应该对应的OpenCV的22版本,所以封装的应该就是这个版本。这是我的理解,你可以参考一下。
首先启动程序后。
然后点击取得连接,蓝色区域将会显示远程摄像头采集的视频图像,
此时将捕捉人脸,并识别,
侧脸时,由于我使用的是之前训练的识别库,这个角度没法识别出我的脸,
调整角度后结果就如下图,识别出我的脸,并显示出在识别库对应的我的名字。
当点击训练识别时将调用笔记本的摄像头进行训练,界面如下(此段是参考别人的训练方法)
在训练框中的名字栏填写要的存储对应头像的人名。
训练完成后,关闭窗口,自动回调出远程视频连接。
再来测试一下识别能力
同为侧面角度,就能识别出人脸并检测了。
public partial class VideoForm : Form
{
private Image<Bgr, byte> currentImage;//设置当前画面
Image<Gray, byte> result = null;//返回帧
Image<Gray, byte> gray_frame = null;//灰度帧
public HaarCascade Face = new HaarCascade(ApplicationStartupPath + "/Cascades/haarcascade_frontalface_alt2xml");//载入训练库数据
MCvFont font = new MCvFont(FONTCV_FONT_HERSHEY_COMPLEX, 05, 05);//设置摄像头字体
//Classifier with default training location
Classifier_Train Eigen_Recog = new Classifier_Train();//实例化一个分类训练器
public VideoForm()
{
InitializeComponent();
}
private void showVideo(object sender, EventArgs e)
{ MyCaputre myCap = new MyCaputre();
string sourceURL = thistextBox1Text;
Bitmap bmp = myCapmyCaputre(sourceURL);
currentImage = new Image<Bgr, byte>(bmp);
markFace(currentImage);
pictureBox1Image = new SystemDrawingBitmap(currentImageToBitmap(), 850, 660);
}
private Image<Bgr, byte> markFace(Image<Bgr, byte> pic)
{
currentImage =currentImageResize(320, 240, EmguCVCvEnumINTERCV_INTER_CUBIC);
if (currentImage != null)
{
gray_frame = currentImageConvert<Gray, Byte>();
MCvAvgComp[][] facesDetected = gray_frameDetectHaarCascade(Face, 12, 10, EmguCVCvEnumHAAR_DETECTION_TYPEDO_CANNY_PRUNING, new Size(50, 50));
以上就是关于emgucv 如何降低图片的像素保存,图片太大有2500X1560的而我只要640X480全部的内容,包括:emgucv 如何降低图片的像素保存,图片太大有2500X1560的而我只要640X480、opencv 如何提取旋转矩形的ROI、如何在emgu CV中进行相机校准后访问旋转和平移向量等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)