2024年5月25日发(作者:羽思萌)
1. /*************************************/
2. #include <atlimage.h>
3. //1.读入Mat矩阵(cvMat一样),Mat img=imread("*.*");//cvLoadImage
4. //确保转换前矩阵中的数据都是uchar(0~255)类型(不是的话量化到此区间),这样
才能显示。(初学者,包括我经常忘了此事)
5. //2.根据矩阵大小创建(CImage::Create)新的的CImage类
6. CImage CI;
7. int w=;//宽
8. int h=;//高
9. int chinnels=ls();//通道数
10. y();//创建前,最好使用它,防止重复创建,程序崩溃
11. (w,h,8*chinnels);
12. //3.下来就是对CI进行赋值了,这里是最核心的地方,分二类讨论
13. // (1)如果是1个通道的图像(灰度图像) DIB格式才需要对调色板设置
14. // CImage中内置了调色板,我们要对他进行赋值:
15. RGBQUAD* ColorTable;
16. int MaxColors=256;
17. //这里可以通过ColorTableEntries()得到大小(如果你是读
入图像的话)
18. ColorTable = new RGBQUAD[MaxColors];
19. orTable(0,MaxColors,ColorTable);//这里是取得指针
20. for (int i=0; i 21. { 22. ColorTable[i].rgbBlue = (BYTE)i; 23. //BYTE和uchar一回事,但MFC中都用它 24. ColorTable[i].rgbGreen = (BYTE)i; 25. ColorTable[i].rgbRed = (BYTE)i; 26. }
2024年5月25日发(作者:羽思萌)
1. /*************************************/
2. #include <atlimage.h>
3. //1.读入Mat矩阵(cvMat一样),Mat img=imread("*.*");//cvLoadImage
4. //确保转换前矩阵中的数据都是uchar(0~255)类型(不是的话量化到此区间),这样
才能显示。(初学者,包括我经常忘了此事)
5. //2.根据矩阵大小创建(CImage::Create)新的的CImage类
6. CImage CI;
7. int w=;//宽
8. int h=;//高
9. int chinnels=ls();//通道数
10. y();//创建前,最好使用它,防止重复创建,程序崩溃
11. (w,h,8*chinnels);
12. //3.下来就是对CI进行赋值了,这里是最核心的地方,分二类讨论
13. // (1)如果是1个通道的图像(灰度图像) DIB格式才需要对调色板设置
14. // CImage中内置了调色板,我们要对他进行赋值:
15. RGBQUAD* ColorTable;
16. int MaxColors=256;
17. //这里可以通过ColorTableEntries()得到大小(如果你是读
入图像的话)
18. ColorTable = new RGBQUAD[MaxColors];
19. orTable(0,MaxColors,ColorTable);//这里是取得指针
20. for (int i=0; i 21. { 22. ColorTable[i].rgbBlue = (BYTE)i; 23. //BYTE和uchar一回事,但MFC中都用它 24. ColorTable[i].rgbGreen = (BYTE)i; 25. ColorTable[i].rgbRed = (BYTE)i; 26. }