最新消息: USBMI致力于为网友们分享Windows、安卓、IOS等主流手机系统相关的资讯以及评测、同时提供相关教程、应用、软件下载等服务。

利用buffer构建CImage

IT圈 admin 23浏览 0评论

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. }

发布评论

评论列表 (0)

  1. 暂无评论