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);
}
查看全文
相关阅读:
Mycat读写分离+高可用笔记
MyCAT基础安装笔记
C# Winform中DataGridView的DataGridViewCheckBoxColumn CheckBox选中判断
C# winform DataTable 批量数据处理 增、删、改 .
选中CheckBoxList的值放到TextBox中,再次选中从textBox中删除
dede后台删除文章后台还有分页显示解决方法
dedecms数据库表说明大全
织梦自增函数[field:global name=autoindex/]常见用法
http协议的状态码——400,401,403,404,500,502,503,301,302等常见网页错误代码
web.config设置之system.webServer 详细介绍,为网站设置默认文档
原文地址:https://www.cnblogs.com/wqj1212/p/1006338.html
最新文章
JavaWeb_gy博客网站_数据库实现
JavaWeb_(视频网站)_四、博客模块1
JavaWeb_(视频网站)_三、用户模块6 评论回复 辅助功能
JavaWeb_(视频网站)_三、用户模块5 评论回复
JavaWeb_(视频网站)_二、用户模块4 基本信息维护(下)
JavaWeb_gy博客网站_系统实现
JavaWeb_(视频网站)_二、用户模块3 基本信息维护(上)
Window操作系统_根据端口查看进行PID 并杀掉进程
JavaWeb_(SpringMVC框架)测试SpringMVC&Spring&MyBatis三大整合
JavaWeb_(SpringMVC框架)SpringMVC&Spring&MyBatis整合
热门文章
JavaWeb_(SpringMVC框架)SpringMVC入门
JavaWeb_(Spring框架)整合Mybatis加入事务操作数据库
JavaWeb_(Spring框架)Spring中的aop事务
Python requests使用cookie
xtrabackup备份恢复
Docker容器基础管理
Docker的镜像基础管理
Docker安装部署
Mycat 垂直分表
mycat 配置中的属性介绍
Copyright © 2011-2022 走看看