OpenCV C++车型识别1-图像预处理
📅 2026/7/30 1:50:34
👁️ 次浏览
这个程序使用OpenCV C实现简单的车型识别这一小节进行图像预处理。输入图片是没有小汽车的背景图片和有小汽车的前景图片上面两张图片做差提取出只有小汽车的前景图片并二值化处理然后开运算(先腐蚀后膨胀)去除图像里的噪点和小物体现在只剩下几个小噪点了去掉这几个小噪点并把整个车辆填充为一个整体得到最终的结果第二小节是形状识别《OpenCV C车型识别2-形状匹配-CSDN博客》代码void Imgsub() { BkGraycvCreateImage(cvGetSize(BkImg),8,1); cvCvtColor(BkImg,BkGray,CV_BGR2GRAY); FrGraycvCreateImage(cvGetSize(BkImg),8,1); cvCvtColor(FrImg,FrGray,CV_BGR2GRAY); cvSmooth(BkGray,BkGray,CV_GAUSSIAN,5); cvSmooth(FrGray,FrGray,CV_GAUSSIAN,5); SubImgcvCreateImage(cvGetSize(BkImg),8,1); cvAbsDiff(FrGray,BkGray,SubImg); } void Binary() { BinaryImgcvCreateImage(cvGetSize(BkImg),8,1); cvThreshold(SubImg,BinaryImg,0,255,CV_THRESH_OTSU); } void Open() { IplConvKernel * kernel_5_5; kernel_5_5cvCreateStructuringElementEx(5,5,2,2,CV_SHAPE_ELLIPSE,0); IplConvKernel * kernel_7_7; kernel_7_7cvCreateStructuringElementEx(7,7,3,3,CV_SHAPE_ELLIPSE,0); cvErode(BinaryImg,BinaryImg,kernel_5_5,1); cvDilate(BinaryImg,BinaryImg,kernel_7_7,1); } void Removenoise() { IplImage * BinaryImg2; BinaryImg2cvCloneImage(BinaryImg); CvMemStorage * storagecvCreateMemStorage(0); CvSeq * area_contourNULL; int Number_contours0; double Area0; CvScalar s_fill_new; s_fill_new.val[0]0; CvScalar loDiff; loDiff.val[0]10; CvScalar upDiff; upDiff.val[0]10; Number_contourscvFindContours(BinaryImg,storage,area_contour,sizeof(CvContour),CV_RETR_EXTERNAL); for(CvSeq * carea_contour;c!NULL;cc-h_next) { Areafabs(cvContourPerimeter(c)); if(Area30) { for(int i0;i1;i) { CvPoint * seedpointCV_GET_SEQ_ELEM(CvPoint,c,i); cvFloodFill(BinaryImg2,*seedpoint,s_fill_new,loDiff,upDiff,NULL,4,0); } } } BinaryImgcvCloneImage(BinaryImg2); } void Imgfill() { CvScalar s; CvScalar s_new; s_new.val[0]255; int left_X0; int right_X0; int top_Y0; int bottom_Y0; for(int wt0;wtBinaryImg-width;wt) { for(int ht0;htBinaryImg-height;ht) { scvGet2D(BinaryImg,ht,wt); if(255s.val[0]) { top_Yht; for(int mBinaryImg-height-1;m0;m--) { scvGet2D(BinaryImg,m,wt); if(255s.val[0]) { bottom_Ym; break; } } for(int itop_Y;ibottom_Y;i) cvSet2D(BinaryImg,i,wt,s_new); htBinaryImg-height; } } } for(int ht0;htBinaryImg-height;ht) { for(int wt0;wtBinaryImg-width;wt) { scvGet2D(BinaryImg,ht,wt); if(255s.val[0]) { for(int mBinaryImg-width-1;m0;m--) { scvGet2D(BinaryImg,ht,m); if(255s.val[0]) { right_Xm; break; } } for(int ileft_X;iright_X;i) cvSet2D(BinaryImg,ht,i,s_new); wtBinaryImg-width; } } } }
AI Agent时代的科研革命 这三个工具让你的效率提升十倍
传统科研模式正在被AI彻底颠覆。过去需要几周甚至几个月完成的文献调研和综述写作,现在几天就能搞定。过去需要反复调试才能复现的实验,现在一键就能完成。这三个基于最新AI技术的科研工具&#x…
📅 2026/7/30 1:50:34
AI Agent时代的科研革命 这三个工具让你的效率提升十倍
传统科研模式正在被AI彻底颠覆。过去需要几周甚至几个月完成的文献调研和综述写作,现在几天就能搞定。过去需要反复调试才能复现的实验,现在一键就能完成。这三个基于最新AI技术的科研工具&#x…
📅 2026/7/30 1:50:34
随着跨境留学、海外就业、境外投资、跨国委托事务不断增多,很多人需要使用海外出具的文书,这时就需要办理对应国家的海牙认证。不少申请人初次接触规则容易混淆,核心原则要记住:文书由哪个国家出具,就在哪个国家办理公…
📅 2026/7/30 1:49:33
封装金额输入组件 MoneyInput 本文是《HarmonyOS NEXT 企业级开发实战:30篇打造智能记账APP》系列的第 09 篇,对应 Git Tag v0.0.9。承接第 08 篇的占位 MoneyInput,本篇完善金额输入组件,支持实时格式化、千分位、小数点限制、最…
📅 2026/7/30 2:46:38
1. 项目概述:从“刷”字说起,两种电机的核心分野聊到电机,尤其是直流电机,绕不开“有刷”和“无刷”这两个词。这听起来像是电机内部有没有一把小刷子,实际上,这个“刷”字,确实形象地指向了两种…
📅 2026/7/30 2:46:37
做化学实验最让人崩溃的,往往不是复杂的仪器,而是那些看似简单却总出岔子的基础反应。这篇内容直接告诉你geo2与naoh反应时的关键控制点,帮你避开沉淀溶解、温度失控等常见坑,让操作一次成功。记得大三那年做无机合成实验,我盯着烧杯里浑浊的液体发呆整整半小时。那时候年…
📅 2026/7/30 2:45:14
Kimi K3开放权重了:2.8万亿参数意味着什么?普通电脑能跑吗?小白一文看懂 最近,Kimi-K3 在大模型和开源社区里迅速走红。
有人说它有 2.8万亿参数,有人说它一次能处理 100万 token,还有人看到 GitHub 和 H…
📅 2026/7/30 2:45:37
第一题 递推式 T(n)2T(n-1)1第一步:不要急着套公式很多同学一看到递推式,就想到 Master 定理。但是 Master 定理只适用于T(n)aT(n/b)f(n)例如T(n)2T(n/2)n而本题是T(n)2T(n-1)1这里不是n 变成 n/2而是n 变成 n-1所以 Master 定理不能使用!第二…
📅 2026/7/30 2:45:37
🔗链接:程序版
🔗链接:打包版(无软件也可以使用) 本期延长了胡桃的冲刺无敌帧,优化了胡桃的冲刺无敌帧:
在30帧的情况下
有152帧的无敌时间
在60帧的情况下
有302帧的无敌时间 …
📅 2026/7/30 2:45:37
本文关键词:geo2是共价化合物哎,说实话,每次看到化学题里那些弯弯绕绕的电子式,我就头大。特别是遇到那种非要让你判断是离子还是共价的,心里就发毛。今天咱不整那些虚头巴脑的定义,就聊聊二氧化硅,也就是大家常说的硅石、石英,很多人会误写成geo2,虽然化学式不对,但…
📅 2026/7/30 0:00:24
B4557 [GESP202606 四级] 扫雷 https://www.luogu.com.cn/problem/B4557 中国计算机学会(CCF)2026年6月C四级讲解——扫雷 https://www.bilibili.com/video/BV1MCMg6AEXR/ B4557 [GESP202606 四级] 扫雷 https://www.bilibili.com/video/BV1ZKTj6ZEVh/ 2…
📅 2026/7/30 0:00:26
Windows驱动存储终极清理工具:DriverStoreExplorer完全指南 【免费下载链接】DriverStoreExplorer Driver Store Explorer 项目地址: https://gitcode.com/gh_mirrors/dr/DriverStoreExplorer
您是否曾因Windows系统盘空间不足而烦恼?是否遇到过设…
📅 2026/7/30 0:00:26
更多请点击:
https://codechina.net
第一章:AI帮助理解数学概念 人工智能正以前所未有的方式重塑数学学习的路径。通过自然语言处理与符号计算的深度融合,AI不仅能解析抽象定义,还能将定理、证明和几何直觉转化为可交互、可验证的…
📅 2026/7/30 1:16:07
1. 项目背景与核心价值去年参与的一个短剧项目让我深刻体会到传统创作流程的痛点:编剧团队花了三周打磨剧本,角色设计反复修改了七版,最后成片时又因为演员档期问题不得不临时调整分镜。这种低效的创作模式在快节奏的内容行业越来越难以为继。…
📅 2026/7/30 1:16:07
remix-i18next TypeScript类型安全实践:确保翻译键与类型定义同步 【免费下载链接】remix-i18next The easiest way to translate your React Router framework mode apps 项目地址: https://gitcode.com/gh_mirrors/re/remix-i18next
在开发多语言应用时&am…
📅 2026/7/30 1:16:07
目录
第一步:选对模板,省心一半
第二步:打开扫码点餐功能
开启功能按钮
桌台管理与桌码生成
第三步:个性化设计,打造品牌感
调整点餐页面
设置点餐规则 你还在让顾客站着排队点餐吗?2025年ÿ…
📅 2026/7/29 7:15:11
在业务中快速构建一个能理解私有文档、准确回答专业问题的智能助手,是很多开发团队面临的共同挑战。传统方案往往需要从零开始搭建复杂的 RAG(检索增强生成)系统,涉及文档解析、向量化、检索、大模型调用等多个环节,整…
📅 2026/7/29 17:15:46
FAE放射组学分析工具:医学影像特征探索的完整解决方案 【免费下载链接】FAE FeAture Explorer 项目地址: https://gitcode.com/gh_mirrors/fae/FAE
你是否曾经面对海量医学影像数据感到无从下手?想要从CT、MRI等影像中提取有价值的定量特征&#…
📅 2026/7/29 5:15:05