من الگوریتم را توضیح میدم و تو c++ کدشو میزارم پیاده سازی در متلب به عهده خودتون.
قله یا همان peak مکان هایی در سیگنال یا تصویر هستند که به صورت محلی نسبت به همسایه هاشون بزرگتر هستند چنانچه تصویر را dilate کنید همه محل ها جز نقاط ماکزیمم محلی دست نخورده باقی می مانندو از این طریق شما کلیه peak های موجود در تصویر را می تونید پیدا کنید.
void test2(){
Mat img = imread("D:/test/test1.png",0);
Mat res1, res2;
cv::reduce(img, res1, 1, CV_REDUCE_AVG, CV_8UC1);
GaussianBlur(res1, res1, Size(13, 13), 0);
dilate(res1, res2, Mat(), Point(), 5);
res2 -= res1;
threshold(res2, res2, 0, 255, CV_THRESH_BINARY);
bitwise_not(res2,res1);
for (size_t i = 0; i < res1.rows;i++)
if (res1.at<uchar>(i))
cv::line(img, Point(0,i), Point(50,i), Scalar::all(128), 1);
imshow("view", img);
waitKey(0);
}