33,311
社区成员
发帖
与我相关
我的任务
分享
double calcGradients(const IplImage *src, int aperture_size = 7)
{
CvSize sz = cvGetSize(src);
IplImage* img16_x = cvCreateImage(sz, IPL_DEPTH_16S, 1);
IplImage* img16_y = cvCreateImage(sz, IPL_DEPTH_16S, 1);
cvSobel(src, img16_x, 1, 0, aperture_size);
cvSobel(src, img16_y, 0, 1, aperture_size);
IplImage* imgF_x = cvCreateImage(sz, IPL_DEPTH_32F, 1);
IplImage* imgF_y = cvCreateImage(sz, IPL_DEPTH_32F, 1);
cvScale(img16_x, imgF_x);
cvScale(img16_y, imgF_y);
IplImage* magnitude = cvCreateImage(sz, IPL_DEPTH_32F, 1);
cvCartToPolar(imgF_x, imgF_y, magnitude);
double res = cvSum(magnitude).val[0];
cvReleaseImage(&magnitude );
cvReleaseImage(&imgF_x);
cvReleaseImage(&imgF_y);
cvReleaseImage(&img16_x);
cvReleaseImage(&img16_y);
return res;
}
c++
double contrast_measure(Mat& img)
{
Mat dx, dy;
Sobel(img, dx, 1, 0, 3, CV_32F);
Sobel(img, dy, 0, 1, 3, CV_32F);
magnitude(dx, dy, dx);
return sum(dx)[0];
}
怎么说much better?因为用c设计的api很冗繁,使用上容易出错,用c的api写出来的代码比c++难维护,性能上又没比c++的api好
对,openCV1的性能没有比openCV2好
那些唱衰c++性能不如c的人,其实是他们自己不知道怎么使用c++
看看openCV2的api,他们的性能会比openCV1的逊色吗?不会!!!
开发者的实力才是重点
如果c++没有前途,如果c比c++优秀,性能远胜c++,那么为何享誉国际,极度注重性能的
openCV会选择舍弃c,拥抱c++?
如果c++没有前途,如果c++不上不下?为何足以影响全世界的gcc会选择用c++重构,而不是继续用c?
这些2B让人鄙视的地方就是
他们从来都不愿意承认问题出在自己,而是把自己功力不足的错推给工具
c++的API可以很简单,看看Qt和openCV2吧
成功的人找方法,失败的人找借口
Qt,openCV2,boost,llvm等开源软体都是很成功的projects
这些开发者都能把c++用的不错,在他们的努力下,不断的寻找方法
把project弄得越来越好
至于那些做不到的2B呢?
只好说出类似这种话了
C++没有明天,不伦不类,不上不下;往下你可以选C和汇编,往上你可以选C#/JAVA/PYTHON等等。
看了这些实际的例子,楼主你认为是c++不上不下,还是说这句话的人不上不下?
[/quote]
double calcGradients(const IplImage *src, int aperture_size = 7)
{
CvSize sz = cvGetSize(src);
IplImage* img16_x = cvCreateImage(sz, IPL_DEPTH_16S, 1);
IplImage* img16_y = cvCreateImage(sz, IPL_DEPTH_16S, 1);
cvSobel(src, img16_x, 1, 0, aperture_size);
cvSobel(src, img16_y, 0, 1, aperture_size);
IplImage* imgF_x = cvCreateImage(sz, IPL_DEPTH_32F, 1);
IplImage* imgF_y = cvCreateImage(sz, IPL_DEPTH_32F, 1);
cvScale(img16_x, imgF_x);
cvScale(img16_y, imgF_y);
IplImage* magnitude = cvCreateImage(sz, IPL_DEPTH_32F, 1);
cvCartToPolar(imgF_x, imgF_y, magnitude);
double res = cvSum(magnitude).val[0];
cvReleaseImage(&magnitude );
cvReleaseImage(&imgF_x);
cvReleaseImage(&imgF_y);
cvReleaseImage(&img16_x);
cvReleaseImage(&img16_y);
return res;
}
c++
double contrast_measure(Mat& img)
{
Mat dx, dy;
Sobel(img, dx, 1, 0, 3, CV_32F);
Sobel(img, dy, 0, 1, 3, CV_32F);
magnitude(dx, dy, dx);
return sum(dx)[0];
}
怎么说much better?因为用c设计的api很冗繁,使用上容易出错,用c的api写出来的代码比c++难维护,性能上又没比c++的api好
对,openCV1的性能没有比openCV2好
那些唱衰c++性能不如c的人,其实是他们自己不知道怎么使用c++
看看openCV2的api,他们的性能会比openCV1的逊色吗?不会!!!
开发者的实力才是重点
如果c++没有前途,如果c比c++优秀,性能远胜c++,那么为何享誉国际,极度注重性能的
openCV会选择舍弃c,拥抱c++?
如果c++没有前途,如果c++不上不下?为何足以影响全世界的gcc会选择用c++重构,而不是继续用c?
这些2B让人鄙视的地方就是
他们从来都不愿意承认问题出在自己,而是把自己功力不足的错推给工具
c++的API可以很简单,看看Qt和openCV2吧
成功的人找方法,失败的人找借口
Qt,openCV2,boost,llvm等开源软体都是很成功的projects
这些开发者都能把c++用的不错,在他们的努力下,不断的寻找方法
把project弄得越来越好
至于那些做不到的2B呢?
只好说出类似这种话了
C++没有明天,不伦不类,不上不下;往下你可以选C和汇编,往上你可以选C#/JAVA/PYTHON等等。
看了这些实际的例子,楼主你认为是c++不上不下,还是说这句话的人不上不下?
[/quote]
double calcGradients(const IplImage *src, int aperture_size = 7)
{
CvSize sz = cvGetSize(src);
IplImage* img16_x = cvCreateImage(sz, IPL_DEPTH_16S, 1);
IplImage* img16_y = cvCreateImage(sz, IPL_DEPTH_16S, 1);
cvSobel(src, img16_x, 1, 0, aperture_size);
cvSobel(src, img16_y, 0, 1, aperture_size);
IplImage* imgF_x = cvCreateImage(sz, IPL_DEPTH_32F, 1);
IplImage* imgF_y = cvCreateImage(sz, IPL_DEPTH_32F, 1);
cvScale(img16_x, imgF_x);
cvScale(img16_y, imgF_y);
IplImage* magnitude = cvCreateImage(sz, IPL_DEPTH_32F, 1);
cvCartToPolar(imgF_x, imgF_y, magnitude);
double res = cvSum(magnitude).val[0];
cvReleaseImage(&magnitude );
cvReleaseImage(&imgF_x);
cvReleaseImage(&imgF_y);
cvReleaseImage(&img16_x);
cvReleaseImage(&img16_y);
return res;
}
c++
double contrast_measure(Mat& img)
{
Mat dx, dy;
Sobel(img, dx, 1, 0, 3, CV_32F);
Sobel(img, dy, 0, 1, 3, CV_32F);
magnitude(dx, dy, dx);
return sum(dx)[0];
}
怎么说much better?因为用c设计的api很冗繁,使用上容易出错,用c的api写出来的代码比c++难维护,性能上又没比c++的api好
对,openCV1的性能没有比openCV2好
那些唱衰c++性能不如c的人,其实是他们自己不知道怎么使用c++
看看openCV2的api,他们的性能会比openCV1的逊色吗?不会!!!
开发者的实力才是重点
如果c++没有前途,如果c比c++优秀,性能远胜c++,那么为何享誉国际,极度注重性能的
openCV会选择舍弃c,拥抱c++?
如果c++没有前途,如果c++不上不下?为何足以影响全世界的gcc会选择用c++重构,而不是继续用c?
这些2B让人鄙视的地方就是
他们从来都不愿意承认问题出在自己,而是把自己功力不足的错推给工具
c++的API可以很简单,看看Qt和openCV2吧
成功的人找方法,失败的人找借口
Qt,openCV2,boost,llvm等开源软体都是很成功的projects
这些开发者都能把c++用的不错,在他们的努力下,不断的寻找方法
把project弄得越来越好
至于那些做不到的2B呢?
只好说出类似这种话了
C++没有明天,不伦不类,不上不下;往下你可以选C和汇编,往上你可以选C#/JAVA/PYTHON等等。
看了这些实际的例子,楼主你认为是c++不上不下,还是说这句话的人不上不下?