OpenCV实现将三幅图像合并在一张图片
2013-08-15 18:30
453 查看
*****************/ #include <cv.h> #include <highgui.h> int main() { char* filePath ="D:/图片库/Lena.jpg"; IplImage* srcImg = cvLoadImage(filePath); IplImage* greyImg = cvCreateImage(cvGetSize(srcImg), srcImg->depth, 1); IplImage* cannyImg = cvCreateImage(cvGetSize(greyImg), srcImg->depth, 1); CvSize dstSize; dstSize.width = srcImg->width *3.0; dstSize.height = srcImg->height; IplImage* dstImg = cvCreateImage(dstSize, srcImg->depth, srcImg->nChannels); cvZero(dstImg); cvConvertImage(srcImg, greyImg); cvCanny(greyImg, cannyImg, 150, 100); //---------------------------------- //载入原图像到目标图像 cvSetImageROI(dstImg, cvRect(0, 0, srcImg->width, srcImg->height)); cvCopy(srcImg, dstImg); cvResetImageROI(dstImg); //载入灰度图像到目标图像 cvSetImageROI(dstImg, cvRect(srcImg->width, 0, srcImg->width, srcImg->height)); dstImg->nChannels =1; cvCopy(greyImg, dstImg); cvResetImageROI(dstImg); //载入边缘检测图像到目标图像 cvSetImageROI(dstImg, cvRect((srcImg->width) *2.0, 0, srcImg->width, srcImg->height)); dstImg->nChannels =1; cvCopy(cannyImg, dstImg); cvResetImageROI(dstImg); //--------------------------------------- cvNamedWindow("dstImg"); cvShowImage("dstImg", dstImg); cvWaitKey(0); cvReleaseImage(&srcImg); cvReleaseImage(&greyImg); cvReleaseImage(&cannyImg); cvReleaseImage(&dstImg); cvDestroyWindow("dstImg"); return0;
这篇文章还是我开通这个博客以来的第一篇文章,虽然我现在已经不再做图像方面的东西,但是看到这篇下面有很多留言,我觉得是这篇文章的题目给大家造成了误解。大家需要了解的应该是不同视角下的图像拼接,而我这里只是简简单单的将两个图像凑在一起,期间没有任何图像特征提取的方法在这里,因此,对于初学OpenCV的人来说,这里的代码可以作为入门级教程。
/article/4895037.html
下面是几个知识点:
(1)路径的设置方式:通常情况下,需要把包含图片的文件夹保存到工程目录下,也就是保证和Debug在同一个根目录下面;
(2)cvSetImageROI函数和cvCopy函数的用法:
cvSetImageROI(IplImage*dst,cvRect(左边界,上边界,宽度,高度))。他的作用是把图像在图像dst中开辟出cvRect矩形框区域大小的内存空间,然后cvCopy(IplImage*src,IplImage*dst)函数会将源图像src复制到目标图像dst中。
相关文章推荐
- OpenCV: 实现将三幅图像合并在一张图片
- OpenCV: 实现将三幅图像合并在一张图片
- OpenCV实现将三幅图像合并在一张图片
- OpenCV: 实现将三幅图像合并在一张图片
- OpenCV: 实现将三幅图像合并在一张图片
- javacpp-opencv图像处理之1:实时视频添加文字水印并截取视频图像保存成图片,实现文字水印的字体、位置、大小、粗度、翻转、平滑等操作
- python3-opencv库(3)--图片颜色空间转换,利用HSV进行物体跟踪,图像通道分离与合并
- 图片像素对比OpenCV实现,实现人工分割跟算法分割图像结果的对比
- OpenCV实现任意大小图片的合并
- OPENCV图像处理基础(一)读取一张图片
- OpenCV实现图像暗区扩张(腐蚀图片)
- javacpp-opencv图像处理之2:实时视频添加图片水印,实现不同大小图片叠加,图像透明度控制,文字和图片双水印
- javacpp-opencv图像处理之2:实时视频添加图片水印,实现不同大小图片叠加,图像透明度控制,文字和图片双水印
- 【图像处理】基于OpenCV底层实现的图片旋转
- Opencv利用ROI将一张图片叠加到另一幅图像的指定位置
- java使用Opencv小例子,从合并的两个图片中减去一张图片
- OPENCV将一张图像和视频合并
- java使用Opencv小例子,从合并的两个图片中减去一张图片
- Opencv 基础学习三 (OpenCV实现图像合并主要有两种方法)
- 【图像处理】基于OpenCV底层实现的图片旋转