emgucv 如何降低图片的像素保存,图片太大有2500X1560的而我只要640X480

emgucv 如何降低图片的像素保存,图片太大有2500X1560的而我只要640X480,第1张

原图是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中进行相机校准后访问旋转和平移向量等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/9874991.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-02
下一篇2023-05-02

发表评论

登录后才能评论

评论列表(0条)

    保存