分享我自己用C++写的GVF snake

crond123 2009-03-20 08:03:06
使用VC++和OpenCV写的GVF snake程序,大部分代码与chengyang xu 的matlab代码等价,不同之处在于轮廓点插值和力场插值,我实现得比较精简,希望对搞Snake的朋友有所帮助.

下载地址:http://download.csdn.net/source/1099993
...全文
735 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
dianwei_wang 2011-07-29
  • 打赏
  • 举报
回复
下载下来看看!
fishndsc 2011-07-20
  • 打赏
  • 举报
回复
下下来看看
xjqhdx 2011-03-29
  • 打赏
  • 举报
回复
先下载下来看看哈。。
wmyming01 2010-12-08
  • 打赏
  • 举报
回复
这些库怎么不一起发?cv.h什么的
burningneutron 2009-06-16
  • 打赏
  • 举报
回复
感谢分享.
请问有没有跟matlab的结果做过定量的对比?
谢谢
libin009 2009-05-26
  • 打赏
  • 举报
回复
好东西!|
liukaihua_168 2009-05-25
  • 打赏
  • 举报
回复
本人确实是初学者,下下来看看啦
实达诚实 2009-04-14
  • 打赏
  • 举报
回复
mark
crond123 2009-03-20
  • 打赏
  • 举报
回复
#include <windows.h>

LRESULT CALLBACK MainWndProc(HWND,UINT,WPARAM,LPARAM); //窗口消息处理函数声明
int APIENTRY WinMain(HINSTANCE hInstance,
HINSTANCE hPrevInstance,
LPSTR lpCmdLine,
int nCmdShow)
{
// TODO: Place code here.
char szClassName[]="MainWClass";
WNDCLASSEX wndclass;
//填充WNDCLASSEX结构
wndclass.cbSize =sizeof(wndclass); //be sure to set this member
wndclass.style =CS_HREDRAW|CS_VREDRAW; //Redraws the entire window if width or height is changed.
wndclass.lpfnWndProc =MainWndProc;
wndclass.cbClsExtra =0; //
wndclass.cbWndExtra =0;
wndclass.hInstance =hInstance; //object handle
wndclass.hIcon =::LoadIcon (NULL,IDI_APPLICATION); //使用预定义的图标和光标
wndclass.hCursor =::LoadCursor (NULL,IDC_ARROW);
wndclass.hbrBackground =(HBRUSH)::GetStockObject (WHITE_BRUSH); //white background
wndclass.lpszMenuName =NULL;
wndclass.lpszClassName =szClassName; //窗口类的名称
wndclass.hIconSm =NULL;
//注册这个窗口类
::RegisterClassEx (&wndclass); //失败则返回0
//创建主窗口
HWND hwnd=::CreateWindowEx (0,szClassName,"My first Window!",WS_OVERLAPPEDWINDOW,
CW_USEDEFAULT,CW_USEDEFAULT,CW_USEDEFAULT,CW_USEDEFAULT,NULL,NULL,hInstance,
NULL); //函数调用成功则返回窗口句柄
if(hwnd==NULL)
{
::MessageBox (NULL,"创建窗口出错!","error",MB_OK);
return -1;
}

//在桌面显示窗口
::ShowWindow (hwnd,nCmdShow );
::UpdateWindow (hwnd);
//从消息队列中取出消息,交给窗口函数处理
MSG msg;
while(::GetMessage (&msg,NULL,0,0))
{
//
::TranslateMessage (&msg);
//
::DispatchMessage (&msg);

return msg.wParam ;
}
return 0;
}

LRESULT CALLBACK MainWndProc(HWND hwnd,UINT message,WPARAM wParam,LPARAM lParam){
char szText[]="最简单的窗口程序!";
switch(message)
{
case WM_PAINT:
{
HDC hdc;
PAINTSTRUCT ps;
hdc=::BeginPaint (hwnd,&ps); //返回设备环境句柄
//
::TextOut (hdc,10,10,szText,strlen(szText));
::EndPaint (hwnd,&ps);
return 0;
}
case WM_DESTROY:
{
::PostQuitMessage (0);
return 0;
}
}


return ::DefWindowProc (hwnd,message,wParam,lParam);
}


MainWndProc 要定义在MainWndProc 外面
catherine_maomao 2009-03-20
  • 打赏
  • 举报
回复

能不能帮忙看下这段代码问题出在哪里呢??谢谢

#include "stdafx.h"
#include<windows.h>

LRESULT CALLBACK MainWndProc(HWND,UINT,WPARAM,LPARAM); //窗口消息处理函数声明
int APIENTRY WinMain(HINSTANCE hInstance,
HINSTANCE hPrevInstance,
LPSTR lpCmdLine,
int nCmdShow)
{
// TODO: Place code here.
char szClassName[]="MainWClass";
WNDCLASSEX wndclass;
//填充WNDCLASSEX结构
wndclass.cbSize =sizeof(wndclass); //be sure to set this member
wndclass.style =CS_HREDRAW|CS_VREDRAW; //Redraws the entire window if width or height is changed.
wndclass.lpfnWndProc =MainWndProc;
wndclass.cbClsExtra =0; //
wndclass.cbWndExtra =0;
wndclass.hInstance =hInstance; //object handle
wndclass.hIcon =::LoadIcon (NULL,IDI_APPLICATION); //使用预定义的图标和光标
wndclass.hCursor =::LoadCursor (NULL,IDC_ARROW);
wndclass.hbrBackground =(HBRUSH)::GetStockObject (WHITE_BRUSH); //white background
wndclass.lpszMenuName =NULL;
wndclass.lpszClassName =szClassName; //窗口类的名称
wndclass.hIconSm =NULL;
//注册这个窗口类
::RegisterClassEx (&wndclass); //失败则返回0
//创建主窗口
HWND hwnd=::CreateWindowEx (0,szClassName,"My first Window!",WS_OVERLAPPEDWINDOW,
CW_USEDEFAULT,CW_USEDEFAULT,CW_USEDEFAULT,CW_USEDEFAULT,NULL,NULL,hInstance,
NULL); //函数调用成功则返回窗口句柄
if(hwnd==NULL)
{
::MessageBox (NULL,"创建窗口出错!","error",MB_OK);
return -1;
}

//在桌面显示窗口
::ShowWindow (hwnd,nCmdShow );
::UpdateWindow (hwnd);
//从消息队列中取出消息,交给窗口函数处理
MSG msg;
while(::GetMessage (&msg,NULL,0,0))
{
//
::TranslateMessage (&msg);
//
::DispatchMessage (&msg);

return msg.wParam ;
}

LRESULT CALLBACK MainWndProc(HWND hwnd,UINT message,WPARAM wParam,LPARAM lParam)
{
char szText[]="最简单的窗口程序!";
switch(message)
{
case WM_PAINT:
{
HDC hdc;
PAINTSTRUCT ps;
hdc=::BeginPaint (hwnd,&ps); //返回设备环境句柄
//
::TextOut (hdc,10,10,szText,strlen(szText));
::EndPaint (hwnd,&ps);
return 0;
}
case WM_DESTROY:
{
::PostQuitMessage (0);
return 0;
}
}


return ::DefWindowProc (hwnd,message,wParam,lParam);
}


return 0;
}


error C2601: 'MainWndProc' : local function definitions are illegal

内容概要:本文系统研究了并网虚拟同步发电机(VSG)的自适应惯量阻尼调控策略及其对频率动态响应稳定性的影响,聚焦于VSG在并网工况下的惯量与阻尼协同自适应控制机制。通过构建Simulink仿真模型并结合Matlab代码实现,深入分析VSG的动态特性、有功/无功功率响应及电网频率稳定性,采用根轨迹法评估不同调节系数对系统稳定性的敏感性,揭示其支撑电网频率稳定的能力。研究进一步拓展至微电网黑启动、预同步控制、虚拟阻抗技术以及双机VSG间的功率精确分配等关键应用场景,旨在应对高比例新能源接入带来的系统惯量下降与频率稳定挑战,提升电力系统的韧性与可靠运行水平。; 适合人群:具备电力系统分析、自动控制理论及新能源并网技术背景,熟练掌握Matlab/Simulink仿真工具,从事电气工程、能源互联网、微电网控制等相关领域的研究生、科研人员及工程技术人员。; 使用场景及目标:①深入探究VSG在并网模式下惯量与阻尼参数的自适应协同调控原理与实现方法;②系统分析VSG控制策略对电网频率动态响应过程的影响规律与稳定边界;③通过仿真实践掌握VSG关键控制参数(如虚拟惯量、阻尼系数)的设计、整定及其对系统性能影响的量化评估;④为微电网的自主黑启动、无缝并网及高渗透率可再生能源系统的频率稳定控制提供先进的技术方案与决策依据。; 阅读建议:建议读者结合文中提供的完整Matlab代码与Simulink模型进行动手仿真实验,重点关注控制策略的模块化设计逻辑、参数动态调整过程与系统整体性能之间的关联,务必结合电力系统小信号稳定性分析理论,深入理解根轨迹、特征值等分析结果所蕴含的物理意义,从而实现从理论到实践的贯通。

4,511

社区成员

发帖
与我相关
我的任务
社区描述
图形图像/机器视觉
社区管理员
  • 机器视觉
  • 迪菲赫尔曼
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧