91av视频/亚洲h视频/操亚洲美女/外国一级黄色毛片 - 国产三级三级三级三级

  • 大小: 7KB
    文件類型: .c
    金幣: 1
    下載: 0 次
    發布日期: 2021-06-10
  • 語言: C/C++
  • 標簽: 梯度??c語言??

資源簡介

C語言實現梯度的計算,速度比opencv快,效率高,可移植性強,代碼的閱讀性好,圖像處理與c語言的有效結合

資源截圖

代碼片段和文件信息

實現1(完全借助OpenCV的函數,較慢):

#include?“stdafx.h“

#include?“highgui.h“

#include?“cv.h“

?

void?Soble(IplImage?*imgIplImage*?gradientImage)

{

?????????IplImage*?H?=?cvCreateImage(cvGetSize(img)?321);

?????????IplImage*?V?=?cvCreateImage(cvGetSize(img)?321);

?????????IplImage*?HV?=?cvCreateImage(cvGetSize(img)?321);

?

?????????//both?horizontal?and?vertical?gradient

?????????cvSobel(imgH013);??

?????????cvSobel(imgV103);

?

?????????//total?gradient?=?sqrt(horizontal*horizontal+vertical*vertical)

?????????int?ij;

?????????double?v1v2v;

?????????for?(i=0;iheight;i++)

????????{

??????????????????for?(j=0;jwidth;j++)

???????????????????{

????????????????????????????v1?=?cvGetReal2D(Hij);

????????????????????????????v2?=?cvGetReal2D(Vij);

????????????????????????????v?=?sqrt(v1*v1+v2*v2);

?

????????????????????????????cvSetReal2D(HVijv);

???????????????????}

????????}

?????????cvNormalize(HVgradientImage0255CV_MINMAX0);

?

?????????cvReleaseImage(&H);

?????????cvReleaseImage(&V);

?????????cvReleaseImage(&HV);

}

int?_tmain(int?argc?_TCHAR*?argv[])

{

?????????IplImage?*?img?=?cvLoadImage(“1.jpg“1);

?????????IplImage?*grayImage?=?cvCreateImage(cvGetSize(img)?8?1);

?????????IplImage?*gradientImage?=?cvCreateImage(cvGetSize(img)81);

?

?????????cvCvtColor(img?grayImage?CV_BGR2GRAY);??//?color?to?gray

?

?????????double?t?=?cvGetTickCount();

?????????Soble(grayImagegradientImage);??

?????????t?=?(cvGetTickCount()-t)/1000000;

?????????printf(“time:?%4.4f\n“?t);

?

?????????cvNamedWindow(“grayImage“1);

?????????cvShowImage(“grayImage“grayImage);

?????????cvNamedWindow(“gradientImage“1);

?????????cvShowImage(“gradientImage“gradientImage);

?

?????????cvWaitKey(0);

?????????cvReleaseImage(&img);

?????????cvReleaseImage(&grayImage);

?????????cvReleaseImage(&gradientImage);

?????????return?0;

}

?


效果圖如下:



???

實現2(借助指針,較快):?


#include?“stdafx.h“

#include?“highgui.h“

#include?“cv.h“

?

int?FastSobel(unsigned?char?*in?int?width?int?height?int?widthStep

???????????????????????????????unsigned?char?*edg?unsigned?char?*ang)

{

?????????int?ij;

?

?????????unsigned?char?*inPtr?=?NULL;

?????????unsigned?char?*inPtr1?=?NULL;

?????????unsigned?char?*inPtr2?=?NULL;

?????????unsigned?char?*inPtr3?=?NULL;

?????????unsigned?char?*inPtr4?=?NULL;

?????????unsigned?char?*inPtr5?=?NULL;

?????????unsigned?char?*inPtr6?=?NULL;

?

?????????int?*pEdgeX?=?(int?*)calloc(width*height?sizeof(int));

?????????int?*pEdgeY?=?(int?*)calloc(width*height?sizeof(int));

?????????int?*pEdgeXPtr?=?NULL;

?????????int?*pEdgeYPtr?=?NULL;

?

?????????unsigned?char?*angPtr?=?NULL;

?????????unsigned?char?*edgPtr?=?NULL;

?

?????????//?this?is?heuristic?and?it?should?add?receptive?area

?????????i

評論

共有 條評論