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. 选择
今天的分享到此就结束了,感谢您的阅读,如果确实帮到您,您可以动动手指转发给其他人。
上一篇
已是最后文章
下一篇
已是最新文章