IplImage的使用 从三通道图中分离出三个单通道
来源:互联网 发布:php 伪静态 编辑:程序博客网 时间:2024/04/27 22:26
- opncvtest.cpp : 定义控制台应用程序的入口点。
- //
- #include "stdafx.h"
- #include<stdio.h>
- #include <opencv2/opencv.hpp>
- using namespace std;
- using namespace cv;
- int _tmain(int argc, _TCHAR* argv[])
- {
- const char* imagename = "itti.jpg";
- //从文件中读入图像
- IplImage * img = cvLoadImage("C:\\Users\\laicb\\Desktop\\test.jpg");
- //如果读入图像失败
- IplImage * b = cvCreateImage(cvGetSize(img),IPL_DEPTH_8U,1);
- IplImage * g = cvCreateImage(cvGetSize(img),IPL_DEPTH_8U,1);
- IplImage * r = cvCreateImage(cvGetSize(img),IPL_DEPTH_8U,1);
- printf("width = %d,height = %d chanels= %d depth = %d",img->width,img->height,img->nChannels,img->depth);
- char * data = img->imageData;
- int step = img->widthStep;
- int chanel = img->nChannels;
- char * bdata = b->imageData;
- char * gdata = g->imageData;
- char * rdata = r->imageData;
- for(int i=0;i<img->height;i++)
- {
- for(int j=0;j<img->width;j++)//这里注意三通道的step是单通道的三倍,这里注意除以3,否则数组越界,IPL_DEPTH_8U
- {
- bdata[i*step/3 + j] = data[i*step + j*chanel];
- gdata[i*step/3 + j] = data[i*step + j*chanel + 1];
- rdata[i*step/3 + j] = data[i*step + j*chanel + 2];
- }
- }
- //显示图像
- cvNamedWindow("blue");
- cvNamedWindow("green");
- cvNamedWindow("red");
- cvShowImage("blue",b);
- cvShowImage("green",g);
- cvShowImage("red",r);
- cvNamedWindow("Window Test");
- cvShowImage("Window Test",img);
- cvWaitKey(0);
- cvReleaseImage(&img);
- cvDestroyWindow("Window Test");
- //此函数等待按键,按键盘任意键就返回
- waitKey();
- return 0;
- }
0 0
- IplImage的使用 从三通道图中分离出三个单通道
- IplImage的使用 从三通道图中分离出三个单通道
- OpenCV Learning: IplImage三个单通道与单个通道的转换
- 单通道图像与三通道图像的memcpy()
- 关于图像三通道和单通道的解释
- OpenCV中cvSplit图像的通道分离
- OpenCV中cvSplit图像的通道分离
- 单通道和三通道学习理解单通道:
- OpenCV 单通道三通道理解
- opencv单通道三通道理解
- opencv 颜色三通道分离
- opencv RGB三通道分离
- 另一种得到三个单通道图像的方法
- opencv学习日记之单通道分离多通道融合
- 单通道语音分离之CASA技术
- 四通道和三通道的处理
- Python-OpenCV单通道加噪(cv2.split通道分离+skimage+cv2.merge通道合并)
- Opencv中颜色通道分离、混合的split和merge
- kafka api 开发常忽略的事
- Matcher: find vs matches
- 让Static控件活起来
- spring 3 源代码构建
- [省选前题目整理][BZOJ 1297]迷路(矩阵快速幂)
- IplImage的使用 从三通道图中分离出三个单通道
- 中断详解(七)——软中断与微任务
- LeetCode--Unique Binary Search Trees II(DP求BST)
- [备忘] 命令行连接无线网 linux
- oracle for update和for update nowait的区别
- linux学习笔记
- list存list
- LINUX的IIC从这开始(一)
- 排序算法大总结(二)