zoukankan
html css js c++ java
bmp和opencv格式转换
IplImage
*
BmpTOIpl(
int
width,
int
height,unsigned
char
*
pBuffer)
{
IPlImage
*
image
=
cvCreateImage(cvSize(width,height),
8
,
1
);
image
->
imageData
=
pBuffer;
return
image;
}
CDibPtr IplToDib(IplImage
*
image)
{
CDibPtr m_ptrBitmaps;
CSize ImageSize;
ImageSize.cx
=
image
->
width;
ImageSize.cy
=
image
->
height;
m_ptrBitmaps.Create(ImageSize,
8
, CDib::TopDown, CDib::Monochrome);
(unsigned
char
*
) m_ptrBitmaps
->
GetPixels()
=
image
->
ImageData;
return
m_ptrBitmaps;
}
IplImage
*
hBitmap2Ipl(HBITMAP hBmp)
{
BITMAP bmp;
::GetObject(hBmp,
sizeof
(BITMAP),
&
bmp);
int
nChannels
=
bmp.bmBitsPixel
==
1
?
1
: bmp.bmBitsPixel
/
8
;
int
depth
=
bmp.bmBitsPixel
==
1
?
IPL_DEPTH_1U : IPL_DEPTH_8U;
IplImage
*
img
=
cvCreateImageHeader( cvSize(bmp.bmWidth, bmp.bmHeight)
, depth, nChannels );
img
->
imageData
=
(
char
*
)malloc(bmp.bmHeight
*
bmp.bmWidth
*
nChannels
*
sizeof
(
char
));
memcpy(img
->
imageData,(
char
*
)(bmp.bmBits),bmp.bmHeight
*
bmp.bmWidth
*
nChannels);
return
img;
}
void
createDIB(IplImage
*
&
pict)
{
IplImage
*
Red
=
cvCreateImage( cvSize(IMAGE_WIDTH,IMAGE_HEIGHT),
IPL_DEPTH_8U,
1
);
IplImage
*
Green
=
cvCreateImage( cvSize(IMAGE_WIDTH,IMAGE_HEIGHT),
IPL_DEPTH_8U,
1
);
IplImage
*
Blue
=
cvCreateImage( cvSize(IMAGE_WIDTH,IMAGE_HEIGHT),
IPL_DEPTH_8U,
1
);
cvSetImageCOI( pict,
3
);
cvCopy(pict,Red);
cvSetImageCOI( pict,
2
);
cvCopy(pict,Green);
cvSetImageCOI(pict,
1
);
cvCopy(pict,Blue);
//
Initialize the BMP display buffer
bmi
=
(BITMAPINFO
*
)buffer;
bmih
=
&
(bmi
->
bmiHeader);
memset( bmih,
0
,
sizeof
(
*
bmih));
bmih
->
biSize
=
sizeof
(BITMAPINFOHEADER);
bmih
->
biWidth
=
IMAGE_WIDTH;
bmih
->
biHeight
=
IMAGE_HEIGHT;
//
-IMAGE_HEIGHT;
bmih
->
biPlanes
=
1
;
bmih
->
biCompression
=
BI_RGB;
bmih
->
biBitCount
=
24
;
palette
=
bmi
->
bmiColors;
for
(
int
i
=
0
; i
<
256
; i
++
)
{
palette[i].rgbBlue
=
palette[i].rgbGreen
=
palette[i].rgbRed
=
(BYTE)i;
palette[i].rgbReserved
=
0
;
}
cvReleaseImage(
&
Red);
cvReleaseImage(
&
Green);
cvReleaseImage(
&
Blue);
}
查看全文
相关阅读:
获取SQLSERVER所有库 所有表 所有列 所有字段信息
无法嵌入互操作类型,请改用适用的接口 的解决方法
注册Com组件..
IIS站点无法访问..点浏览IIS窗口直接关掉
数据库日志文件的收缩
由于目标机器积极拒绝,无法连接。
Log4Net使用方法
WindowsService 创建.安装.部署
蓝桥杯题库基础练习字母图形
修改IDEA默认模板
原文地址:https://www.cnblogs.com/wqj1212/p/1006338.html
最新文章
从程序员到项目经理(3):外行可以领导内行吗
从程序员到项目经理(2):认识项目经理
从程序员到项目经理(1)
转载:ECMAScript 6简介
现在开始使用 ES6
sencha cmd常用命令汇总
Extjs的架构设计思考,单页面应用 or 多页面?
5、手把手教你Extjs5(五)使用图标字体来美化按钮)
[SQL]select scope_identity()传回插入相同范围之识别资料行中的最后一个识别值
[SQL]insert、update 表触发器应用的demo
热门文章
[SQL]声明触发器 <待整理>
[SQL]开启事物,当两条插入语句有出现错误的时候,没有错误的就插入到表中,错误的语句不影响到正确的插入语句
[SQL]SQL优化34条
[SQL]sql介绍
[SQL]SQL语言入门级教材_跟我学SQL(六)
[SQL]SQL语言入门级教材_SQL语言快速入门(五)
[SQL]SQL语言入门级教材_SQL语言基本语句介绍(四)
[SQL]SQL语言入门级教材_SQL语法参考手册(三)
在VS2013中强制IIS Express应用程序池使用经典模式
Web启动服务器上的某一个服务
Copyright © 2011-2022 走看看