月度归档:2012年12月

在MFC中应用OpenCV(无CvvImage类)

MFC程序中显示OpenCV图像主要用到的是BITMAPINFO、BITMAPINFOHEADER结构及StretchDIBits函数。

先贴一下MSDN文档中对这些结构与函数的语法描述:

typedef struct tagBITMAPINFO {
  BITMAPINFOHEADER bmiHeader;
  RGBQUAD          bmiColors[1];
} BITMAPINFO, *PBITMAPINFO;
    
typedef struct tagBITMAPINFOHEADER {
  DWORD biSize;
  LONG  biWidth;
  LONG  biHeight;
  WORD  biPlanes;
  WORD  biBitCount;
  DWORD biCompression;
  DWORD biSizeImage;
  LONG  biXPelsPerMeter;
  LONG  biYPelsPerMeter;
  DWORD biClrUsed;
  DWORD biClrImportant;
} 

Python遍历清理VC项目中的Debug Release ipch 及 sdf

VC编译后生成的Debug、Release、ipch目录及sdf文件占用大量空间,不方便代码保存,写了个Python程序自动遍历清理。

import os
import shutil
  
def remove_vc_extra(root_dir):
    list_dirs = os.walk(root_dir, topdown=False)
    for dirpath, dirnames, filenames in list_dirs:
        for dirname in dirnames:
            if dirname == 'Debug' or dirname == 'Release' or dirname == 'ipch':
                shutil.rmtree(os.path.join(dirpath, dirname), ignore_errors=True)
        for filename in filenames:
            

Python PIL库调用Windows照片查看器预览图片

在Windows下PIL中调用Image.show并不能调用画图工具显示图像(Python2.7 + PIL1.1.7),修改Image模块中的_show函数(约2121行位置)成功使用Windows照片查看器显示图片。

def _show(image, **options):
    # override me, as necessary
    filename = image._dump(format=image.format)
    import subprocess
    subprocess.Popen('rundll32.exe shimgvw.dll,ImageView_Fullscreen '+filename)
  
    #apply(_showxv, (image,), options)