2009-10-11 17:34
看了下自己写的文章,觉得很好笑。都是xx学习备注,而且都是很浅浅的开个头。汗。。。
今天又开始写opencv学习备注了。
接触图像处理2年了,还没有用过opencv,一直都是自己写代码的,是时候融入大家庭了。
先下载了书learning opencv。
阅读中。。。。。
2009-10-24
书看看很简单,毕竟前面有点cv的基础,嘿嘿。
今天动手设置开发环境。参考官网的文章。有一点要提下。install build的时候,会出错。多build几下就能成功了。
为了做界面方便,项目是支持clr的,System::string 类型转换成char* 类型也头痛了好一会。
终于找到了,不敢私藏
IntPtr p=Marshal::StringToHGlobalAnsi(this->openFileDialog1->FileName);
char * filename=static_cast<char*>(p.ToPointer());
Marshal::FreeHGlobal(p);//这句要去掉
接下去碰到了150002错误,网上竟然找不到什么提示。后来在官网找到一个,说要安装vcredist_x86.exe,
试了还是不行。也有说能成的。我不成。
偶然发现,在release模式下是可以的。
于是按照learning opencv的代码写了个显示图像的。
结果又发现显示不出来,是一个灰色的区域,原来是上面的代码有错
Marshal::FreeHGlobal(p); 这句要去掉
ok了。。。。。。。。。。
但是窗口的位置好像是随机的,还有如何对这个窗口进行定制呢?
又试了下视频的例子,打开一个mpg的可以,wmv的播放了几帧就出错了。rmvb的可以。看来是调用的directshow的,
还有例子中的代码,如何直接关窗口时不行的。退不出来,一定得按esc键退出.路过先..
如果想把打开的图片显示在当前窗口的某个面板中,不知道可以不。。这部分内容,应该是在highgui里
看了下,gui的功能还是直接用程序语言自带的好。
如果能把IplImage对象和Timage对象来个转换,则gui用语言来实现会更方便。let's try it。
2009-10-27
发现用cvNamedwindow无法实现mdi的窗口。后来听网友偶爱葡萄的做法,把iplimage转换成bitmap类型,放弃了cvnamedwindow。
.net c++中需要关注资源的释放问题吗?
2009-10-29
实现了灰度化,二值化,连通区标记的功能,接下去还要用ml模块来实现ocr的功能
ocr具备印刷体中英文识别的功能即可。手写体的识别最好以后能比较容易的添加进去。中文,英文,数字的识别可以分开。
以及屏幕录制或者指定窗口的内容录制功能,这个会比较难吧。
就这几个功能已经够忙一阵子的了。
2009-10-31
这两天进展比较慢,c++不熟悉加上代码上的琐碎问题。今天实现了c++的全局变量,c++编译器和c++在易用性上还真不如c#。
不能够让程序员很好的关注程序或者算法本身。c++的全局变量通过下面的方式实现
innerfile int&i()
{
static int instance
return instance
}
#define g_i i()
该代码来自网络。
接下去我希望先做局部特征这一块。29号的安排先放一下。