1》这个函数两个参数:文件的名字,加载的方式(如果是正数表示使用 3 通道,如果是 0 单通道,如果是负数表示使用原来图像的格式)
cvLoadImage("fileName",int type);
简单复制图片:
#include <iostream>
#include <cv.h>
#include <highgui.h>
IplImage *g_pGrayImage = NULL;
IplImage *g_pBinaryImage = NULL;
void on_trackbar(int pos)
{ // 二值化函数
cvThreshold(g_pGrayImage, g_pBinaryImage, pos, 255, CV_THRESH_BINARY);
// 通过滚动条来查看二值图
cvShowImage("change", g_pBinaryImage);
}
int main(int argc, const char * argv[])
{
IplImage *pSrcImage = cvLoadImage("/Opencv_element/images/446678.jpg");
g_pGrayImage = cvCreateImage(cvGetSize(pSrcImage), IPL_DEPTH_8U, 1);
cvCvtColor(pSrcImage, g_pGrayImage, CV_BGR2GRAY);
g_pBinaryImage = cvCreateImage(cvGetSize(g_pGrayImage), IPL_DEPTH_8U, 1);
cvNamedWindow("change",CV_WINDOW_AUTOSIZE);
int nThreshold = 0;
cvCreateTrackbar("change", "change", &nThreshold, 254,on_trackbar);
on_trackbar(1);
cvWaitKey();
IplImage *pImg = cvLoadImage("/Opencv_element/images/446678.jpg");
// 强制加载为单通道
IplImage *pImg3 = cvLoadImage("/Opencv_element/images/446678.jpg",0);
IplImage* pImg2 = cvCreateImage(cvGetSize(pImg), pImg->depth, pImg->nChannels);
// 对原来的图像进行取反
cvNot(pImg3, pImg3);
// 复制图像,使用 mask 提取图片
cvCopy(pImg, pImg2,g_pBinaryImage);
cvNamedWindow("Image",CV_WINDOW_AUTOSIZE);
cvNamedWindow("Image2",CV_WINDOW_AUTOSIZE);
cvNamedWindow("Image3",CV_WINDOW_AUTOSIZE);
cvShowImage("Image", pImg);
cvShowImage("Image2", pImg2);
cvShowImage("Image3", pImg3);
cvWaitKey();
cvDestroyWindow("Image");
cvDestroyWindow("Image2");
cvDestroyWindow("Image3");
cvReleaseImage(&pImg);
cvReleaseImage(&pImg2);
cvReleaseImage(&pImg3);
return 0;
}
2: 保存图片:
文件名:图片指针
cvSave("fileName", pImg);