- 博客(43)
- 收藏
- 关注
原创 C实现的俄罗斯方块
刚开始学习C的时候写的一个东西,好像只有在一些老旧的机器上能跑,今天有机会接触到了这样的一台机器,试了一下,还是可以跑得动的,好激动(虽然程序在内存释放方面是有问题的)附上代码:#include "stdio.h"#include "dos.h"#include "conio.h"#include "graphics.h"#include "stdlib.h"/***********
2012-10-13 16:58:38
1758
原创 直方图均衡化(matlab实现)
对图像(灰度图)进行直方图均衡化主要有一下几个步骤:1、计算各个灰度值(0-255)出现的次数2、计算各个灰度值的累积分布率2、根据累积分布率计算出原来各灰度值的均衡化之后的新的值%This file is to implement histogram equlizationoriginalImage = imread('tire.tif');%这个TIFF图像是四维的(
2012-10-09 16:11:24
10071
原创 OpenCV 接收鼠标消息——用鼠标画长方形
创建一幅黑色的图像,显示后,用鼠标在显示窗口中,拖动以画出长方形:#include "stdafx.h"#include #include #include void myMouseCallBack(int event, int x, int y, int flags, void * param);CvRect box;bool drawing_box = false;v
2012-08-25 13:50:27
3400
原创 opencv初识
1、创建一个100*100的3通道图像,先把图设置成黑色,再用cvCircle画一个圆,最后显示之。#include "stdafx.h"#include #include #include #include int _tmain(int argc, _TCHAR* argv[]){ //IPlImage * img = cvCreatMat( IplImage * img
2012-08-23 23:57:28
6024
原创 Win7 编译安装log4cxx c++日志类
log4cxx是Apache的Log4j的一个C++版本,我今天在win7+VS2010环境下进行了编译安装,中间出了一些问题,查资料发现每个人遇到的问题不完全相同,有一些我就没有遇到,这里记录一下我遇到的各个问题以及解决的方法。首先要下载log4cxx 以及 apr 和 apr-util 源码:log4cxx:http://www.apache.org/dyn/closer.cgi/lo
2012-07-26 01:19:55
4008
1
原创 VC++字符编码之间的转换
1、把一个字符串(单字节char、多字节均可)转换为宽字符(UTF-16编码,双字节表示,在VC++程序中若选择Unicode编码,则使用的是双字节wchar_t)函数原型:int MultiByteToWideChar( __in UINT CodePage, __in DWORD dwFlags, __in LPCSTR lpMultiB
2012-07-25 23:44:11
3592
原创 win7与Ubuntu 12.04双系统修改启动项顺序
在在win7下安装了Ubuntu 12.04后,在grub中,win7启动想是最后一个,为了把win7设置为默认启动项,需要更改grub设置。google了半天,发现更改/etc/default/grub是无效的,打开/boot/grub/grub.cfg,里面写着“DO NOT EDIT THIS FILE”,而且我发现即使更改了SET_DEFAULT后一旦执行update-grub,启动顺序还
2012-07-10 00:07:26
11145
1
原创 C++网络编程的几个函数
1、WSAStartupint WSAStartup ( WORD wVersionRequested, LPWSADATA lpWSAData );wVersionRequested ⑴ wVersionRequested:一个WORD(双字节)型数值,指定了应用程序需要使用的Winsock规范的最高版本。 ⑵lpWSAData 指向WSADATA数据结构的指针,用来接收Win
2012-07-09 21:17:51
1148
原创 Arnold映射
Arnold映射是混沌置乱系统中用的较多的一种方法,最早由Arnold和Avez提出。对于一幅二维图像,改变其像素的位置或数值,就会变成另外一幅与原图不同的图像。Arnold映射正是通过改变元素的位置来实现对图像的置乱处理的。一幅N×N 的图像的Arnold变换定义见公式:其中,是像素在原图像中的坐标, 是变换后的位置,mod为模运算,N是图像的大小(图像必须是正方形,否则不具备Arnol
2012-07-09 21:16:19
6169
转载 VC定时器
转自:http://hi.baidu.com/asd4790007/item/9d14953fb111b20bcfb9fed7在VC中,定时有三种方法,一是利用WM_TIMER消息的API函数,二是使用多媒体定时器,三是多线程定时器(不知道是不是可以这样分啊)。1、WM_TIMERSetTimer函数是用来设立一个定时器,SetTimer函数的原型如下:UINT_P
2012-07-09 16:57:21
616
转载 利用"NOTIFYICONDATA"实现MFC的托盘程序
转自:http://hi.baidu.com/asd4790007/item/494a48d46535f491270ae7da一、自定义信息在头文件中加入下面这句话:#define WM_SHOWTASK (WM_USER+1)二、MYDLG.CPP文件中添加_messageEntries数组添加自定义信息WM_SHOWTASKON_MESSAGE(WM_SHOWTAS
2012-07-09 16:55:43
1048
转载 EndDialog和CDialog::OnOK()
转自:http://hi.baidu.com/asd4790007/item/8a1a71e01ba12b15595dd8da第一,OnOK()和OnCancel()是CDialog基类的成员函数,而OnClose()和OnDestroy()是CWnd基类的成员函数,即WM消息响应函数。从应用程序结构的角度,拿对话框来说,红色的X对应的是CWnd,而处于对话框中的“确定”、“取消”按钮则对应了
2012-07-09 16:47:42
8576
原创 利用mysql的C API来操作mysql数据库
要使用mysql的C API来操作数据库,则在安装数据库的时候必须选择安装其开发组件,主要是一些头文件和库文件的安装,在编程的时候需要使用这些库。在程序开发的时候,需要包含头文件文件夹include,以及库文件夹lib/debug,在外部库依赖中填写libmysql.lib,另外,由于需要使用网络连接,还需要开启windows socket 支持。 在我的测试程序中,我建立的表结
2012-07-03 21:57:41
996
原创 随机过程给定种子,得到的结果总是一样的
如题。 以下是一段产生不重复的随机数的代码:#include #include #include #include bool sortIntVector(int v1, int v2);int main(){ std::vector v_randInt; int seed = 9; int temp; int i = 0;
2012-05-12 18:23:29
1286
原创 猫映射及其逆映射
猫映射是一种混沌系统,它将明文当做混沌系统的初始值进行迭代或演化来达到将明文进行置乱(加密)的效果。它也叫做Arnold映射,最早由Arnold和Avez提出。其映射方式如下: 当把(x,y)视为矩阵(长与宽相等)的坐标的时候,N即为矩阵的宽度,该过程可以将整个矩阵中的元素的位置打乱。事实上,在对图像进行混沌置乱以实现加密的时候,多采用猫映射来实现。需要指出的是,上式是可以迭
2012-05-12 17:21:07
5542
翻译 新的CCSDS图像压缩推荐标准
摘要——空间数据系统咨询委员会(CCSDS)的数据压缩工作组最近通过了图像数据压缩议案,最终版本预计在2005年发布。议案中采用的算法由两部分组成,先是一个对图像的二维离散小波变换,然后是对变换后的数据的累进的位平面编码。这个算法可以提供无损压缩和有损压缩,并允许用户直接控制压缩数据的量或保真度,根据这些数据可以重建小波变换的数据。该算法发同时适用于基于帧的图像数据和基于扫描的传感数据,并且被应用
2012-04-26 10:17:23
3952
1
原创 C/C++求对数
C的数学函数库定义了自然对数函数log,但没有定义以其他数为底的对数,可以通过换底公式来实现之:测试代码:#include "stdio.h"#include "conio.h"#include #define E 2.718282 int main(){ double a,b; a = log(100) / log(10);
2012-04-25 18:05:31
30348
转载 PSNR(Peak Signalto Noise Ratio):峰值信噪比
转自:http://hi.baidu.com/filmstar_13/blog/item/421570463fc6700e6a63e5a4.htmlPSNR(Peak Signalto Noise Ratio):峰值信噪比峰值信噪比(PSNR),一种评价图像的客观标准。它具有局限性,PSNR是“PeakSignaltoNoiseRatio”的缩写。peak的中文意思是顶
2012-04-24 21:50:19
8652
转载 CFile
CFileCObject └CFileCFile是MFC文件类的基类,它直接提供非缓冲的二进制磁盘输入/输出设备,并直接地通过派生类支持文本文件和内存文件。CFile与CArchive类共同使用,支持MFC对象的串行化。该类与其派生类的层次关系让程序通过多形CFile接口操作所有文件对象。例如,一个内存文件相当一个磁盘文件。使用CFile
2012-04-24 19:36:42
943
转载 CFileDialog类应用详解
转自:http://blog.csdn.net/bxwang1/article/details/3220609最近编程用到CFileDialog类选择多个文件,在网上搜索了一下,讲的千差万别,自己总结了一下,与大家一起分享!构造函数原型:CFileDialog(BOOL bOpenFileDialog, LPCTSTR lpszDefExt = N
2012-04-24 16:32:05
10079
转载 StretchDIBits用法
转自:http://blog.csdn.net/giantchen547792075/article/details/6996011StretchDIBits 函数把DIB、JPEG、PNG图像中一矩形区域内的像素颜色数据复制到指定的目标矩形里。如果目标矩形大于源矩形,此函数将拉伸的行和列以适合目标矩形的颜色数据。如果目标矩形小于源矩形,则此函数使用指定的光栅操作压缩的行和列。(Note:
2012-04-23 21:01:16
29460
原创 BitBlt用法
BOOL BitBlt( int x, int y, int nWidth, int nHeight, CDC* pSrcDC, int xSrc, int ySrc, DWORD dwRop );返回值:函数成功,返回非零值,否则为0。参数: x 指定目标矩形左上角的逻辑x坐标。y 指定目标矩形左上角的逻辑y坐标。nWidth 指定目标矩形和源位图的宽度(逻辑单位
2012-04-23 20:58:25
2563
原创 指定struct成员变量的位数
在定义结构体的时候,我们在指定成员变量的类型的同时也可以指定成员变量所占的位数,其定义形式为:struct teststruct{ 类型1 成员1 :成员1所占位数; 类型2 成员2 :成员2所占位数; 类型3 成员3 :成员3所占位数; ......};虽然拆分基本成员变量在语法上是得到支持的,但是并不等于我们想怎么分就怎么
2012-01-20 22:32:11
3098
转载 mfc combo box 控件使用方法总结
转自:http://blog.sina.com.cn/s/blog_534408920100al29.html由于接触VC时间不长,对VC中控件的用法也不是很了解,用到时在网上查了很多,现总结如下:1、改变下拉框大小:先点向下的箭头,就可以调整下拉框大小2、如果 ComboBox 的 Sorted 属性设置为 true, 则新添加项将按字母顺序插入到列表中。 否
2012-01-09 17:51:14
1393
原创 MFC radio button 组选按钮
在使用MFC的radio button的来实现按钮组单选效果时的实现方式:1、连续添加两个Radio Button,确保其ID是连续的(可以查看Resource.h中的定义)2、将第一个Radio Button的Group属性设置为true如此处理后,运行程序时,两个按钮均未选中,选中一个后,点击另一个的时候,之前选中的按钮变为未选中状态。可以在OnInitDial
2012-01-09 17:39:21
2259
1
原创 C字符串处理函数
1、strcatchar * strcat ( char * destination, const char * source );连接字符串将source字符串的拷贝附加到destination字符串,destination中的结束空字符null被source字符串的第一个字符所覆盖,并且一个新的空字符null被附加到连接两个字符串而生成的新字符串destination的末尾。参
2011-12-27 17:41:44
1704
原创 windows DIB位图的4字节对齐
昨天做一些对位图的处理,需要对像素进行一些复制操作,结果发现在处理部分图像的时候,显示的图像是斜向左错位显示的,如下图所示。经过多次对不同的图像进行显示,发现对于那些图像宽度为单数的图像都出现斜向左错位显示的现象。原图(295X338): 显示后的图像(错位了
2011-12-27 16:36:47
3052
原创 C\C++几个内存处理函数
1、memcpyvoid * memcpy ( void * destination, const void * source, size_t num );复制内存块从source指向的位置直接复制num个字节的值到destination指向的内存块。对于这个函数,source和destination指向的对象的底层类型是无关的;结果是数据的一个二进制复制。这个函数
2011-12-26 20:59:13
6734
原创 BMP文件结构
BMP文件由文件头、位图信息头、颜色表信息和图像数据四部分组成。结构为: 位图文件头结构:BITMAPFILEHEADER 位图信息头结构:BITMAPINFOHEADER 位图颜色表:RGBQUAD 位图像素数据 1、位图文件头结构包含了
2011-12-25 18:32:50
618
原创 C++文件操作
ifstream ofstream ftream这个知识点迷糊了很久了,前段时间始终没有搞清楚,今天又拿过来看的时候好象明白了点......ofstream是从内存到硬盘,ifstream是从硬盘到内存,其实所谓的流缓冲就是内存空间;在C++中,有一个stream这个类,所有的I/O都以这个“流”类为基础的,包括我们要认识的文件I/O,stream这个类有两个重要的运算符:
2011-12-25 00:49:03
1079
原创 基于DCT变换和Sobel边缘检测的数字图像权限控制
之前学长带我做一个数字图像权限控制的Demo程序,其大体过程是这样的:先将一幅图像进行8X8分块的DCT变换,这时候每个分块的左上角像素的能量是最高的(最亮),这时取出每个分块的左上角的像素值组成一个新的矩阵,然后为其加水印(水印图像的尺寸与矩阵尺寸一致),再对其进行Sobel边缘检测,进行二值化,最后将二值化后的信息与用户信息进行哈希处理生成一个认证码作为该用户对图像的权限标识。
2011-12-25 00:27:38
2121
原创 数组下标为负数
在使用数组的时候,相信大多数人首先想到的是“数组是从0开始的,数组的下标必须大于或等于0”,但是在处理一些数值计算的问题的时候,很可能会遇到下标为负数的问题,比如,在做9/7浮点小波变换的时候会有:x(m) = x(-m) ,m<0,在这种情况下,当要循环迭代计算的时候,就需要判断m是否为负数,这个还是有点麻烦的。 这个时候,如果我们知道m的最小值,比如-4的时候,就可以考虑直
2011-12-24 23:57:16
17906
转载 贝泽曲线
来自:http://blog.csdn.net/killwd/article/details/1460478在图形图像编程时,我们常常需要根据一系列已知点坐标来确定一条光滑曲线。其中有些曲线需要严格地通过所有的已知点,而有些曲线却不一定需要。在后者中,比较有代表性的一类曲线是贝塞尔曲线(Bézier Splines)。网友们可能注意到,贝塞尔曲线广泛地应用于很多图形图像软件中,例如Fl
2011-12-20 19:29:48
1077
转载 Big Endian 和 Little Endian
来自:http://blog.csdn.net/sunshine1314/article/details/2309655Big Endian 和 Little EndianPeter Lee 2008-04-20一、字节序来自:http://ayazh.gjjblog.com/archives/1058846/谈到字节序的问题,必然牵涉到两大CPU派系。那就是Motorol
2011-12-18 17:58:07
743
原创 OpenCV将彩色图像转化为灰度图代码
#include "highgui.h"#include #include int main(int argc, char* argv[]){ const char* imagename = "lena.jpg"; IplImage * img = cvLoadImage(imagename); if(!img) { f
2011-12-15 23:26:27
55084
4
原创 一个打印日志的C宏定义——TRACEOUT
在编程的时候,我们常常需要知道程序的运行状态,因而回用printf、cout或者AfxMessageBox等方式将信息打印出来。这样处理其实是很麻烦的,每个地方都要写这些代码,程序发布的时候又要手动注释或者删除这些代码,费时费力还容易出错。而本文则是介绍另外一种方式来获取程序的运行状态——打印日志,通过一个宏定义来把要打印的信息写到一个日志文件中,这样不仅可以记录程序每次运行的状态便于debug,
2011-12-01 12:26:19
4337
原创 C++标准库 vector排序
前天要做一个对C++ STL的vector容器做一个排序操作,之前一直把vector当做一个容量可自动变化的数组,是的,数组,所以打算按照对数组进行排序的方法:用快速排序或是冒泡排序等算法自己写一个排序的函数。后来觉得STL这么强大,应该有它自己的排序方法(没有好好学习啊),然后就去google了一下,果然有,而且可以自定义排序的函数,太强大了(而且效率应该比我自己写的要好吧)。// Vect
2011-09-03 21:51:43
122510
5
转载 VC++ VTK 读取序列CT图片三维重建
终于找到了一个可以运行的VTK实现CT图像三维重建的程序:http://blog.163.com/keith__2006/blog/static/261055282007101732432567/#include "vtkRenderer.h"#include "vtkRenderWindow.h"#include "vtkRenderWindowInteractor.h"#incl
2011-09-01 00:20:04
12912
5
转载 VS2005配置VTK
由于工作需要,在VS2005环境下配置VTK,找了很多资料都有问题(可能是版本的问题),以下内容转自http://hi.baidu.com/wchwho/blog/item/c6c6dd1d32f3f5ed1ad5766e.html,是配置vtk5.6的。另:生成的DLL文件
2011-08-29 15:20:20
2162
1
原创 Java压缩(文件或目录)
这几天学习Java IO,老师让做一个Java Zip压缩程序,参考了网上的一些很不错的代码,结合自己的需要,写了下面这段代码:/** * */package zxcTest;import java.io.BufferedInputStream;import java.io.File;import java.io.FileInputStream;import java.io.F
2010-10-25 22:18:00
3591
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人