findpeaks函數可以獲得峰值位置。

10余年的安平網站建設經驗,針對設計、前端、開發、售后、文案、推廣等六對一服務,響應快,48小時及時工作處理。成都全網營銷推廣的優勢是能夠根據用戶設備顯示端的尺寸不同,自動調整安平建站的顯示方式,使網站能夠適用不同顯示終端,在瀏覽器中調整網站的寬度,無論在任何一種瀏覽器上瀏覽網站,都能展現優雅布局與設計,從而大程度地提升瀏覽體驗。成都創新互聯公司從事“安平網站設計”,“安平網站推廣”以來,每個客戶項目都認真落實執行。
1、a=findpeaks(data),獲得data的局部峰值,此方法即峰值點大于相鄰兩點即可。
2、a,b=findpeaksd(ata),可以返回峰值位置,峰值位置賦予給b。
你的辦法估計可行性不高,稍微出個毛刺就不對了。
建議采用fft分析,根據頻域的結果判斷一個合理值。
#includestdio.h
#include?stdlib.h
#include?limits.h
#includemalloc.h
#define?maxsize?6?//每個波形數據最大采集個數??默認6
typedef?struct?array1
{
int?*data;
struct?array1?*next;
}ARR1;
ARR1?*addNewArr(ARR1?*arrHead,ARR1?*arrTail);//插入一組波形數據節點?返回尾節點
int?findMaxF(ARR1?*arrHead);//查找最大峰值
int?removeMinF(ARR1?*arrHead);//移除最小峰值數據組???返回最小峰值
void?printfArr(ARR1?*arrHead);//打印數據鏈表
int?main()
{
ARR1?*arrHead=(ARR1?*)malloc(sizeof(ARR1));
arrHead-next=NULL;
ARR1?*arrTail=NULL;
arrTail=addNewArr(arrHead,arrTail);//想插入幾組,就調用幾次??我就測試6組
arrTail=addNewArr(arrHead,arrTail);
arrTail=addNewArr(arrHead,arrTail);
arrTail=addNewArr(arrHead,arrTail);
arrTail=addNewArr(arrHead,arrTail);
arrTail=addNewArr(arrHead,arrTail);
printf("采集的原數據組為:\n");
printfArr(arrHead);
printf("最大峰值:%d,最小峰值值:%d\n",findMaxF(arrHead),removeMinF(arrHead));
printf("刪除最小峰值數據組后的數據為:\n");
printfArr(arrHead);
return?0;
}
void?printfArr(ARR1?*arrHead)//打印數據鏈表
{
while(arrHead-next!=NULL)
{
printf("%d,%d,%d,%d,%d,%d\n",arrHead-next-data[0],arrHead-next-data[1],arrHead-next-data[2],arrHead-next-data[3],arrHead-next-data[4],arrHead-next-data[5]);
arrHead=arrHead-next;
}
}
ARR1?*addNewArr(ARR1?*arrHead,ARR1?*arrTail)//插入一組波形數據???返回尾節點
{
int?*data=(int?*)malloc(sizeof(int)*maxsize),i;
printf("采集一組波形數據(最大采集個數%d):",maxsize);
for(i=0;imaxsize;i++)
scanf("%d",data[i]);
ARR1?*arrNew=(ARR1?*)malloc(sizeof(ARR1));
arrNew-data=data;
arrNew-next=NULL;
if(arrHead-next==NULL)//插入第一組數組?作為首節點
arrHead-next=arrNew;
else
arrTail-next=arrNew;
arrTail=arrNew;
return?arrTail;
}
int?findMaxF(ARR1?*arrHead)//查找最大峰值
{
int?i,maxNum=0,maxf=0;
while(arrHead-next!=NULL)
{
maxNum=0;
for(i=0;imaxsize;i++)//獲取每組數據的峰值
{
if(arrHead-next-data[i]maxNum)
maxNum=arrHead-next-data[i];
}
if(maxNummaxf)//獲取最大峰值
maxf=maxNum;
arrHead=arrHead-next;
}
return?maxf;
}
int?removeMinF(ARR1?*arrHead)//移除最小峰值數據組???返回最小峰值
{
int?i,maxNum=0,minf=INT_MAX;
ARR1?*minDataSave=NULL,*arrHeadSave=arrHead;
while(arrHead-next!=NULL)
{
maxNum=0;
for(i=0;imaxsize;i++)//獲取每組數據的峰值
{
if(arrHead-next-data[i]maxNum)
maxNum=arrHead-next-data[i];
}
if(maxNumminf)//獲取最小峰值
{
minDataSave=arrHead-next;
minf=maxNum;
}
arrHead=arrHead-next;
}
arrHead=arrHeadSave;
//移除最小峰值數據組
while(arrHead-next!=NULL)
{
if(arrHead-next==minDataSave)//刪除節點重組鏈表
{
arrHead-next=minDataSave-next;
minDataSave-next=NULL;
free(minDataSave-data);//釋放節點內存
free(minDataSave);
break;
}
arrHead=arrHead-next;
}
return?minf;
}
網站標題:C語言找函數圖像的峰值 c語言圖像處理函數
網站網址:http://www.yijiale78.com/article0/ddgcdio.html
成都網站建設公司_創新互聯,為您提供動態網站、App設計、虛擬主機、網頁設計公司、網站設計公司、服務器托管
聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯