• 大小: 5.66MB
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2023-11-15
  • 语言: 其他
  • 标签: 钢筋  火柴  OpenCV  

资源简介

基于图像的火柴和钢筋数量统计,基本算法为hough变换,其中有两个文档分别实现火柴数量的检测和钢筋数量的检测,有示例图片,程序为普通win32控制工程,使用opencv2.4.9,运行时可能需要自行配置。

资源截图

代码片段和文件信息

// ImageProcessingProject.cpp : 定义控制台应用程序的入口点。
//
#include “stdafx.h“
#include
#include
#include“thresh.h“
#include“matches.h“
#include “rebars.h“
using namespace cv;
using namespace std;

void sharpenImage1(const cv::Mat &image cv::Mat &result);
 int LBPOtsu(Mat& src);
 void roberts(IplImage *srcIplImage *dst);
int _tmain(int argc _TCHAR* argv[])
{
cvNamedWindow(“钢筋结果图像“0);
cvNamedWindow(“火柴结果图像“0);
char *addr =“钢筋根数统计2.jpg“;//图片载入路径
IplImage *image = cvLoadImage(addr);
char *addr1 =“火柴根数统计2.jpg“;//图片载入路径
IplImage *image1 = cvLoadImage(addr1);
if(!image)
{
cout <<“Read Image Failed!“;
exit(0);
}
if(!image1)
{
cout <<“Read Image1 Failed!“;
exit(0);
}
int count = 0;
rebarsdetected(imagecount);
cout<<“钢筋数量为:“< MathesDetected(image1count);
cout<<“火柴数量为:“< cvShowImage(“钢筋结果图像“image);
cvShowImage(“火柴结果图像“image1);
cv::waitKey(0);
//直线检测或圆形检测
//程序结束
    cvDestroyAllWindows();
cvReleaseImage(&image);
cvReleaseImage(&image1);
return 0;

void roberts(IplImage *srcIplImage *dst)  
 {  
  //为roberts图像申请空间因为要利用源图像指针中的imageData因此使用复制方式  
  dst=cvCloneImage(src);  
  int xyiwh;  
  int temptemp1;  
   
  uchar* ptr=(uchar*) (dst->imageData );  
  int ptr1[4]={0};  
  int indexx[4]={0110};  
  int indexy[4]={0011};  
  w=dst->width;  
  h=dst->height;  
  for(y=0;y    for(x=0;x    {  
   
    for(i=0;i<4;i++)    //取每个2*2矩阵元素的指针      0 | 1  
    {                   //                             3 | 2  
    ptr1[i]= *(ptr+(y+indexy[i])*dst->widthStep+x+indexx[i]);  
       
    }  
    temp=abs(ptr1[0]-ptr1[2]);    //计算2*2矩阵中0和2位置的差,取绝对值temp  
    temp1=abs(ptr1[1]-ptr1[3]);   //计算2*2矩阵中1和3位置的差,取绝对值temp1  
    temp=(temp>temp1?temp:temp1); //若temp1>temp则以temp1的值替换temp  
       temp= (int)sqrt(float(temp*temp)+float(temp1*temp1));  //输出值  
   /* if (temp>100) 
  29.    temp=255; 
  30.   else temp=0;  */  
     *(ptr+y*dst->widthStep+x)=temp;    //将输出值存放于dst像素的对应位置  
   }  
   
  double min_val = 0max_val = 0;//取图并显示像中的最大最小像素值  
  cvMinMaxLoc(dst&min_val&max_val);     
  printf(“max_val = %f\nmin_val = %f\n“max_valmin_val);  
   
  cvSaveImage(“RobertsImg.jpg“ dst);//把图像存入文件  
 }  

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件      50688  2015-09-07 11:06  火柴钢筋数量检测程序\Debug\ImageProcessingTask.exe

     文件     648952  2015-09-07 11:06  火柴钢筋数量检测程序\Debug\ImageProcessingTask.ilk

     文件    1805312  2015-09-07 11:06  火柴钢筋数量检测程序\Debug\ImageProcessingTask.pdb

     文件       4088  2015-09-07 11:06  火柴钢筋数量检测程序\ImageProcessingTask\Debug\cl.command.1.tlog

     文件      67108  2015-09-07 11:06  火柴钢筋数量检测程序\ImageProcessingTask\Debug\CL.read.1.tlog

     文件       5988  2015-09-07 11:06  火柴钢筋数量检测程序\ImageProcessingTask\Debug\CL.write.1.tlog

     文件        406  2015-08-23 16:04  火柴钢筋数量检测程序\ImageProcessingTask\Debug\ImageProcessingTask.exe.embed.manifest

     文件        472  2015-08-23 16:04  火柴钢筋数量检测程序\ImageProcessingTask\Debug\ImageProcessingTask.exe.embed.manifest.res

     文件        381  2015-09-07 11:06  火柴钢筋数量检测程序\ImageProcessingTask\Debug\ImageProcessingTask.exe.intermediate.manifest

     文件         67  2015-09-07 11:06  火柴钢筋数量检测程序\ImageProcessingTask\Debug\ImageProcessingTask.lastbuildstate

     文件       3367  2015-09-07 11:06  火柴钢筋数量检测程序\ImageProcessingTask\Debug\ImageProcessingTask.log

     文件     128489  2015-09-07 11:06  火柴钢筋数量检测程序\ImageProcessingTask\Debug\ImageProcessingTask.obj

     文件    1179648  2015-08-23 16:04  火柴钢筋数量检测程序\ImageProcessingTask\Debug\ImageProcessingTask.pch

     文件        707  2015-08-23 16:27  火柴钢筋数量检测程序\ImageProcessingTask\Debug\ImageProcessingTask.vcxprojResolveAssemblyReference.cache

     文件          0  2015-08-23 16:03  火柴钢筋数量检测程序\ImageProcessingTask\Debug\ImageProcessingTask.write.1.tlog

     文件        228  2015-08-23 16:04  火柴钢筋数量检测程序\ImageProcessingTask\Debug\ImageProcessingTask_manifest.rc

     文件          2  2015-09-07 11:06  火柴钢筋数量检测程序\ImageProcessingTask\Debug\link-cvtres.read.1.tlog

     文件          2  2015-09-07 11:06  火柴钢筋数量检测程序\ImageProcessingTask\Debug\link-cvtres.write.1.tlog

     文件          2  2015-09-07 11:06  火柴钢筋数量检测程序\ImageProcessingTask\Debug\link.10080-cvtres.read.1.tlog

     文件          2  2015-09-07 11:06  火柴钢筋数量检测程序\ImageProcessingTask\Debug\link.10080-cvtres.write.1.tlog

     文件          2  2015-09-07 11:06  火柴钢筋数量检测程序\ImageProcessingTask\Debug\link.10080.read.1.tlog

     文件          2  2015-09-07 11:06  火柴钢筋数量检测程序\ImageProcessingTask\Debug\link.10080.write.1.tlog

     文件          2  2015-09-07 11:06  火柴钢筋数量检测程序\ImageProcessingTask\Debug\link.1168-cvtres.read.1.tlog

     文件          2  2015-09-07 11:06  火柴钢筋数量检测程序\ImageProcessingTask\Debug\link.1168-cvtres.write.1.tlog

     文件          2  2015-09-07 11:06  火柴钢筋数量检测程序\ImageProcessingTask\Debug\link.1168.read.1.tlog

     文件          2  2015-09-07 11:06  火柴钢筋数量检测程序\ImageProcessingTask\Debug\link.1168.write.1.tlog

     文件          2  2015-09-07 11:06  火柴钢筋数量检测程序\ImageProcessingTask\Debug\link.15204-cvtres.read.1.tlog

     文件          2  2015-09-07 11:06  火柴钢筋数量检测程序\ImageProcessingTask\Debug\link.15204-cvtres.write.1.tlog

     文件          2  2015-09-07 11:06  火柴钢筋数量检测程序\ImageProcessingTask\Debug\link.15204.read.1.tlog

     文件          2  2015-09-07 11:06  火柴钢筋数量检测程序\ImageProcessingTask\Debug\link.15204.write.1.tlog

............此处省略157个文件信息

评论

共有 条评论