爱乐眼底图像分析

 找回密码
 立即注册

QQ登录

只需一步,快速开始

用截取的部分图像创建新图像

2012-6-3 15:49| 发布者: gbs| 查看: 1939| 评论: 0|来自: www.gbs-cqh.net

摘要: CvMat* cvGetSubRect(const CvArr* arr, CvMat* submat, CvRect rect)可以把截取图像中需要的区域存入矩阵。把IplImage *传给arr,IplImage *指向所要截取的图像;把CvMat *传给submat(CvMat *只需为头指针就可以不 ...
CvMat* cvGetSubRect(const CvArr* arr, CvMat* submat, CvRect rect)可以把截取图像中需要的区域存入矩阵。把IplImage *传给arr,IplImage *指向所要截取的图像;把CvMat *传给submat(CvMat *只需为头指针就可以不需要分配数据存储空间);rect是要截取的区域;返回指向所存矩阵。
例如:

 CvMat *pMat = cvCreateMatHeader(100, 100, CV_8UC1); //创建一个100*100的矩阵头
CvRect rect = cvRect(0, 0, 100, 100); //要截取的区域,与创建的矩阵大小一样
cvGetSubRect(pImg, pMat, rect); //pImg为指向图像的指针,pMat指向存储所接图像的矩阵,返回值和pMat相等


也可以简化为:1 CvMat *pMat = cvGetSubRect(pImg, cvCreateMatHeader(100, 100, CV_8UC1), cvRect(0, 0, 100, 100));


IplImage* cvGetImage( const CvArr* arr, IplImage* image_header )可以把刚才存入矩阵的数据转存为图像。把CvMat *传给arr;image_header只需为图像头就行,不用分配数据存储空间 ;返回所存图像的指针。
 例如:
 IplImage *pSubImg = cvCreateImageHeader(cvSize(100, 100), 8, 1); //创建一个100*100的图像头
cvGetImage(pMat, pSubImg); //pMat为存储数据的矩阵,pSubImg指向图像,返回值与pSubImg相等


也可以简化为:1 IplImage *pSubImg = cvGetImage(pMat, cvCreateImageHeader(cvSize(100, 100), 8, 1));


截取子图最后简化为:1 IplImage *pSubImg = cvGetImage(cvGetSubRect(pImg, cvCreateMatHeader(100, 100, CV_8UC1), cvRect(0, 0, 100, 100)), cvCreateImageHeader(cvSize(100, 100), 8, 1)); //好乱...读明白这句费劲儿


OpenCV版本2.0.0

鲜花

握手

雷人

路过

鸡蛋


QQ|Archiver|手机版|小黑屋|爱乐眼底图像分析 ( 京ICP备1201155号 )        

GMT+8, 2024-5-4 13:48 , Processed in 0.028058 second(s), 14 queries .

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

返回顶部