OpenCV笔记
来源:互联网 发布:sql2000数据库备份 编辑:程序博客网 时间:2024/05/30 04:29
语法
1. mfc下hbitmap与mat的转换
【参考链接】
BOOL IMGDlg::HBitmapToMat(HBITMAP& _hBmp,Mat& _mat){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; Mat v_mat;v_mat.create(cvSize(bmp.bmWidth,bmp.bmHeight), CV_MAKETYPE(CV_8U,nChannels));GetBitmapBits(_hBmp,bmp.bmHeight*bmp.bmWidth*nChannels,v_mat.data); _mat=v_mat;return TRUE; }BOOL IMGDlg::MatToHBitmap(HBITMAP& _hBmp,Mat& _mat){//MAT类的TYPE=(nChannels-1+ CV_8U)<<3int nChannels=(_mat.type()>>3)-CV_8U+1;int iSize=_mat.cols*_mat.rows*nChannels;_hBmp=CreateBitmap( _mat.cols,_mat.rows,1,nChannels*8,_mat.data);return TRUE;}//注意此处CV_8U须使用实际的通道深度,本例因可以确定故写为CV_8U
2. FileStorage修改node的值
好像没有直接修改.yml中某一node值的方法【待确认】,可以复制一个临时文件,读入再写出yml,最后删除临时文件
FileStorage fs;fs["node1"] >> value;//可以//fs["node1"] << value;//这样直接写出不可以//fs << "node1" << vlaue;//可以
FileStorage打开后,没有release导致程序退出时崩溃!!注意及时关闭文件!!!
CImage
IPLImage
cvvImage
应用
图像Dither
分辨率,单位是dpi(dot per inch),即每英寸点数,点数越多,分辨率就越高,图象就越清晰。
例如:
设显示器为15英寸(指对角线长度),最多显示1280×1024个点。因为宽高比为4:3,所以宽有12英寸,高有9英寸,则该显示器的水平分辨率为106dpi,垂直分辨率为113.8dpi。
假设有一幅240×180×8bit的灰度图,当用分辨率为300dpi×300dpi的激光打印机将其打印到12.8×9.6英寸的纸上时,每个象素的图案有多大?这张纸最多可以打
(300×12.8)×(300×9.6)=3840×2880
个点,所以每个象素可以用(3840/240)×(2880/180)=16×16
个点大小的图案来表示,即一个象素256个点。如果这16×16的方块中一个黑点也没有,就可以表示灰度256;有一个黑点,就表示灰度255;依次类推,当都是黑点时,表示灰度0。这样,16×16的方块可以表示257级灰度,比要求的8bit共256级灰度还多了一个。所以上面的那幅图的灰度级别完全能够打印出来。
抖动是以牺牲分辨率为代价,通过颜色值的抖动来增加可用颜色数量。抖动是引入了随机成分(???),从而避免图案法(patterning)选点和块划分过大的问题。
Floyd–Steinberg dithering抖动算法可参考wikipedia关于算法原理、OpenCV实现。
- OpenCV笔记
- openCV笔记
- OpenCV笔记
- OpenCV笔记
- opencv笔记
- Opencv笔记
- opencv 笔记
- opencv笔记
- opencv笔记
- opencv笔记
- OpenCV--笔记
- opencv笔记
- OpenCV笔记
- OpenCV笔记
- OpenCV笔记
- OpenCV学习笔记
- OpenCV 学习笔记
- 学习笔记-----opencv
- 3.EmBitz个性化设置
- Java练习
- nginx中文文档
- hotspot虚拟机中java对象的分配与布局和访问
- JSP三大指令
- OpenCV笔记
- opencv程序用静态库编译不成功
- Chapter2 变量和基本类型
- 侧滑菜单栏传值到fragment,实现整体多条目布局
- Java 线程的几种状态
- JavaScript+CSS+DIV实现下拉菜单
- JSP九大内置对象
- 从Activity setContentView了解LayoutInflater(一)
- HDU