当前位置: 首页 > news >正文

华大基因 网站建设昆明seo网站建设

华大基因 网站建设,昆明seo网站建设,公司网站能自己做吗,做本地网站要服务器吗参考:精选课:C完整的实现双目摄像头图像采集、双目摄像头畸变矫正、前景物体提取、生成视差图、深度图、PCL点云图 前景物体提取是计算机视觉中的一个重要技术,可以用于视频监控、虚拟现实和计算机视觉等领域。 1.前景物体提取的原理 前景…

参考:精选课:C++完整的实现双目摄像头图像采集、双目摄像头畸变矫正、前景物体提取、生成视差图、深度图、PCL点云图

前景物体提取是计算机视觉中的一个重要技术,可以用于视频监控、虚拟现实和计算机视觉等领域。

1.前景物体提取的原理

前景物体提取是将摄像机拍摄到的图像中的前景物体(如移动的人、车辆等)从背景中分离出来的过程。其原理是利用帧间差分和背景建模两个步骤。帧间差分是通过相邻帧之间像素点灰度值的差异来检测出运动目标,背景建模是通过不断更新背景图像来适应场景的变化。

2.实现步骤

步骤1:读取摄像机视频并初始化,使用OpenCV库来读取摄像机视频:

cv::VideoCapture cap(0);
if (!cap.isOpened()) {std::cout << "Cannot open camera" << std::endl;return -1;
}cv::Mat frame;
cap.read(frame);

步骤2:背景建模,定义一个背景图像和一个学习率,初始值为0.01。在每一帧中,将当前帧与背景图像相减,得到一个差分图像。

cv::Mat background;
double learning_rate = 0.01;// 第一帧作为背景图像
background = frame.clone();// 对于后面的帧,逐像素地计算背景图像
while (true) {cap.read(frame);// 将当前帧与背景图像相减,得到一个差分图像cv::Mat diff;cv::absdiff(frame, background, diff);// 根据差分图像更新背景图像for (int i = 0; i < diff.rows; i++) {for (int j = 0; j < diff.cols; j++) {cv::Vec3b pixel = diff.at<cv::Vec3b>(i, j);if (pixel[0] > 50 || pixel[1] > 50 || pixel[2] > 50) {// 更新背景像素cv::Vec3b background_pixel = background.at<cv::Vec3b>(i, j);cv::Vec3b frame_pixel = frame.at<cv::Vec3b>(i, j);background_pixel[0] = (1 - learning_rate) * background_pixel[0] + learning_rate * frame_pixel[0];background_pixel[1] = (1 - learning_rate) * background_pixel[1] + learning_rate * frame_pixel[1];background_pixel[2] = (1 - learning_rate) * background_pixel[2] + learning_rate * frame_pixel[2];background.at<cv::Vec3b>(i, j) = background_pixel;}}}
}

步骤3:帧间差分,将当前帧与背景图像相减,得到差分图像。然后将差分图像进行二值化处理,得到前景物体掩模。

// 帧间差分
cv::Mat diff;
cv::absdiff(frame, background, diff);// 二值化处理,得到前景掩模
cv::Mat foreground_mask;
cv::threshold(diff, foreground_mask, 50, 255, cv::THRESH_BINARY);

步骤4:过滤掉小的前景物体,使用形态学操作对前景掩模进行处理,去除噪声和小物体。

// 使用开运算去除噪声和小物体
cv::Mat kernel = cv::getStructuringElement(cv::MORPH_ELLIPSE, cv::Size(5, 5));
cv::Mat foreground_mask_filtered;
cv::morphologyEx(foreground_mask, foreground_mask_filtered, cv::MORPH_OPEN, kernel);

步骤5:显示结果,将原始图像和前景掩模相乘,得到只有前景物体的图像。

// 显示结果
cv::Mat result = frame.clone();
cv::Mat foreground_image = cv::Mat::zeros(frame.size(), frame.type());
frame.copyTo(foreground_image, foreground_mask_filtered);cv::imshow("Original Image", frame);
cv::imshow("Foreground Mask", foreground_mask_filtered);
cv::imshow("Foreground Image", foreground_image);cv::waitKey(30);

3.完整代码

演示了对单个摄像头的前景物体提取,双目摄像机需要对两个摄像头的同一幅图片场景分别做前景物体提取,然后作为左右视图对其进行进一步畸变矫正。

#include <iostream>
#include <opencv2/opencv.hpp>int main() {// 打开摄像机cv::VideoCapture cap(0);if (!cap.isOpened()) {std::cout << "Cannot open camera" << std::endl;return -1;}// 初始化cv::Mat frame;cap.read(frame);// 背景建模cv::Mat background;double learning_rate = 0.01;background = frame.clone();while (true) {// 读取帧cap.read(frame);// 背景建模cv::Mat diff;cv::absdiff(frame, background, diff);for (int i = 0; i < diff.rows; i++) {for (int j = 0; j < diff.cols; j++) {cv::Vec3b pixel = diff.at<cv::Vec3b>(i, j);if (pixel[0] > 50 || pixel[1] > 50 || pixel[2] > 50) {cv::Vec3b background_pixel = background.at<cv::Vec3b>(i, j);cv::Vec3b frame_pixel = frame.at<cv::Vec3b>(i, j);background_pixel[0] = (1 - learning_rate) * background_pixel[0] + learning_rate * frame_pixel[0];background_pixel[1] = (1 - learning_rate) * background_pixel[1] + learning_rate * frame_pixel[1];background_pixel[2] = (1 - learning_rate) * background_pixel[2] + learning_rate * frame_pixel[2];background.at<cv::Vec3b>(i, j) = background_pixel;}}}// 帧间差分cv::Mat diff2;cv::absdiff(frame, background, diff2);cv::Mat foreground_mask;cv::threshold(diff2, foreground_mask, 50, 255, cv::THRESH_BINARY);// 去除噪声和小物体cv::Mat kernel = cv::getStructuringElement(cv::MORPH_ELLIPSE, cv::Size(5, 5));cv::Mat foreground_mask_filtered;cv::morphologyEx(foreground_mask, foreground_mask_filtered, cv::MORPH_OPEN, kernel);// 显示结果cv::Mat result = frame.clone();cv::Mat foreground_image = cv::Mat::zeros(frame.size(), frame.type());frame.copyTo(foreground_image, foreground_mask_filtered);cv::imshow("Original Image", frame);cv::imshow("Foreground Mask", foreground_mask_filtered);cv::imshow("Foreground Image", foreground_image);cv::waitKey(30);}// 释放资源cap.release();cv::destroyAllWindows();return 0;
}
http://www.hkea.cn/news/535484/

相关文章:

  • 婚纱照网站制作搜索引擎优化搜索优化
  • 网站建设吉金手指专业13中国营销网站
  • 做销售在哪些网站注册好百度产品
  • dw做汽车网站seo排名工具提升流量
  • 网络培训学校排名奉化seo页面优化外包
  • vps除了做网站还能做什么晨阳seo服务
  • seo网站建设优化什么意思网络营销与直播电商专业就业前景
  • 工程建设企业网站网站关键词优化应该怎么做
  • 修复wordpress青岛网站优化
  • 敦煌网站做外贸怎样网页推广怎么做的
  • 南京网站建设优化今日头条普通版
  • 网站编辑的工作职能有哪些活动营销案例100例
  • 小程序招商加盟平台我是seo关键词
  • wordpress 发帖机镇江抖音seo
  • 网站建设的小结可以发外链的论坛有哪些
  • 网站正常打开速度网店营销与推广策划方案
  • 义乌 网站制作进入百度app
  • 做外围网站赌球红树林seo基础入门免费教程
  • 绿色风格网站seo排名赚钱
  • 南宁企业免费建站百度推广营销怎么做
  • 建立个人网站的成本短视频seo营销系统
  • 深圳公司名称大全网站结构优化的内容和方法
  • 安康市代驾公司上海网站关键词排名优化报价
  • 怎么在网站上建设投票统计在线培训系统app
  • 泰州网站建设哪家好网站seo的主要优化内容
  • 洛卡博网站谁做的seo权重查询
  • 东莞网络科技公司有哪些山东网站seo
  • 网站建设需要学什么网站模板购买
  • 用html做的游戏网站关键词推广效果分析
  • 做影视网站引流正规推广平台有哪些