Hi,大家好,我是编程小6,很荣幸遇见你,我把这些年在开发过程中遇到的问题或想法写出来,今天说一说opencv图像处理案例_图像处理opencv好就业吗,希望能够帮助你!!!。
常见语言都有简单的图像处理库,我知道java、python等都有。这些库一般比较简单,方便在对应的语言下进行简单的图像处理。另外,一些需要图像处理的芯片也会实现自己独立的图像处理库。
在学习工作过程中,我一般使用matlab、magick、opencv进行图像处理(opengl一般进行图形处理)。
matlab是一个非常强大的软件,包含很多数学处理基础,图像处理,模式识别,信号处理等,和数学沾边的方方面面几乎在matlab中都有比较完美的实现。堪称数学界的神曲。但是它不太合适用于工程应用,着重于过程实现。它函数使用非常简单,如果有想法可以先在matlab下试试。
magick和opencv是在实际项目中比较常用的两个图像处理软件,在实际的应用中,他们各有优缺点。下面介绍一下这两个图像处理库。
magick的官方网站:http://www.imagemagick.org/script/index.php(imagemagick)
http://www.graphicsmagick.org/(graphicmagick)
opencv的官方网站:http://opencv.willowgarage.com/wiki/
// magick中的图像读写 Image image("xxx.jpg"); // 或者 Image image; image.read("xxx.jpg"); image.write("xxxx.jpg"); // opencv中的图像读写 IplImage* image = cvLoadImage("xxx.jpg"); cvSaveImage("xxxx.jpg", image);
2. 实现
// magick中的图像切割 image.crop( Geometry(100,100, 100, 100) );(magick中的图像切割) //opencv中的图像切割 CvRect crop_rect = cvRect(100,100, 100, 100) IplImage* image_crop = cvCreateImage(cvSize(crop_rect.width, crop_rect.height), image->depth, image->nChannels); cvSetImageROI(image, crop_rect); cvCopy(image, image_crop); cvResetImageROI(image);
// magick中的图像缩放 image.zoom("200x200");//得到是最长边为200的图像 // opencv中的图像缩放 int max_size = 200; int ori_width = image->width; int ori_height = image->height; CvSize dst_size; if(width > height) dst_size = cvSize(max_size, int(max_size * height/(double)width)); else dst_size = cvSize(int(max_size * width / (double)height), max_size); IplImage* image_zoom = cvCreateImage(dst_size, image->depth, image->nChannels); cvResize(image, image_zoom, CV_INTER_LINEAR);
3. opencv和magick的优缺点对比
4. 选择
今天的分享到此就结束了,感谢您的阅读,如果确实帮到您,您可以动动手指转发给其他人。
上一篇
已是最后文章
下一篇
已是最新文章