- 浏览: 702304 次
- 性别:
- 来自: 北京
-
文章分类
- 全部博客 (181)
- Matlab (16)
- Java (26)
- autoHotkey (4)
- openCV (1)
- C++ (50)
- PDF-XChange Viewer (2)
- 学术 (11)
- javascript (4)
- linux (11)
- SWT (9)
- latex (7)
- GAE (2)
- windows (6)
- C# (3)
- PS (20)
- JNI (4)
- latex,批处理 (0)
- 批处理 (4)
- Android (5)
- 矩阵论 (1)
- SVM (1)
- 概率图模型 (0)
- Python (12)
- Eigen (5)
- 编程题 (1)
- MKL (1)
- 神经网络 (9)
- 最优化 (2)
- 摄影 (1)
- PPT (0)
- After Effects (3)
- CUDA (3)
- caffe (0)
- MXNet (2)
- svn (1)
- R (0)
- 虚拟机 (0)
- tensorflow (7)
- theano (1)
- Keras (1)
- vim (1)
- xgboost (1)
- spark (6)
- eclipse (2)
- word2vec (0)
- hadoop (1)
- dmlc (1)
- git (0)
最新评论
-
jeffersonz:
请问大神,这个插件记录下来的脚本为什么不能再Extendscr ...
PhotoShop - 记录PS的所有操作为JavaScript代码 -
cherishLC:
Andy__Zou 写道cherishLC 写道Andy__Z ...
Eigen的编译选项;MKL的使用 -
Andy__Zou:
cherishLC 写道Andy__Zou 写道cherish ...
Eigen的编译选项;MKL的使用 -
cherishLC:
Andy__Zou 写道cherishLC 写道Andy__Z ...
Eigen的编译选项;MKL的使用 -
Andy__Zou:
cherishLC 写道Andy__Zou 写道 您好,您的工 ...
Eigen的编译选项;MKL的使用
初学,,感觉PS插件的文档很烂,,教程也很少,,也就这么简单学一下了!!!
adobe_photoshop_sdk下载:http://www.adobe.com/devnet/photoshop.html
本文实现的是最简单的filter插件--将图像取反---也就是根本没有任何参数的一个filter!!!
其实要有参数可以自己加对话框(不熟悉windows编程,没实现),,完全没必要采用adobe的框架。
感觉alien skin exposure ; google nik collection等都是自己实现的:先读一个要修改的图像,在自己插件里选好效果后执行,返回结果到PS。 因而学习adobe家的架构不是太必要
注:只保证对RGB图像有效,,,对灰度图本来可以,,后来不知道怎么回事,直接弹对话框说接口不支持。。。。
修改自 http://www.cnblogs.com/hoodlum1980/archive/2009/05/11/1453870.html 非常好的中文教程,,但是我改了他的没成功,,年份久了,接口变了,,,
以及 adobe_photoshop_sdk_cc_2014_win 中的 dissolve 例程
最后工程用的dissolve例程的,本文件是例程和该网页综合起来的,还有我自己写的
注意例程使用的是相对路径,,,所以本工程必须放到和例程dissolve的同一级目录才行!!!否则请按以上教程所示自行修改头文件及 编译pipl文件的程序路径
重要参考文献:
How to Write a Photoshop Plug-In, Part 1(强烈推荐!!) http://www.mactech.com/articles/mactech/Vol.15/15.04/PhotoshopPlug-InsPart1/index.html
Writing a Photoshop Plug-In, Part 2 http://www.mactech.com/articles/mactech/Vol.15/15.05/PhotoshopPlug-InsPart2/index.html
adobe_photoshop_sdk_cc_2014_win document (很烂,但毕竟比较全)
Photoshop 的插件及其实现:http://www.moon-soft.com/book/plugin.htm
最后贴上主要代码:工程文件见附件
adobe_photoshop_sdk下载:http://www.adobe.com/devnet/photoshop.html
本文实现的是最简单的filter插件--将图像取反---也就是根本没有任何参数的一个filter!!!
其实要有参数可以自己加对话框(不熟悉windows编程,没实现),,完全没必要采用adobe的框架。
感觉alien skin exposure ; google nik collection等都是自己实现的:先读一个要修改的图像,在自己插件里选好效果后执行,返回结果到PS。 因而学习adobe家的架构不是太必要
注:只保证对RGB图像有效,,,对灰度图本来可以,,后来不知道怎么回事,直接弹对话框说接口不支持。。。。
修改自 http://www.cnblogs.com/hoodlum1980/archive/2009/05/11/1453870.html 非常好的中文教程,,但是我改了他的没成功,,年份久了,接口变了,,,
以及 adobe_photoshop_sdk_cc_2014_win 中的 dissolve 例程
最后工程用的dissolve例程的,本文件是例程和该网页综合起来的,还有我自己写的
注意例程使用的是相对路径,,,所以本工程必须放到和例程dissolve的同一级目录才行!!!否则请按以上教程所示自行修改头文件及 编译pipl文件的程序路径
重要参考文献:
How to Write a Photoshop Plug-In, Part 1(强烈推荐!!) http://www.mactech.com/articles/mactech/Vol.15/15.04/PhotoshopPlug-InsPart1/index.html
Writing a Photoshop Plug-In, Part 2 http://www.mactech.com/articles/mactech/Vol.15/15.05/PhotoshopPlug-InsPart2/index.html
adobe_photoshop_sdk_cc_2014_win document (很烂,但毕竟比较全)
Photoshop 的插件及其实现:http://www.moon-soft.com/book/plugin.htm
最后贴上主要代码:工程文件见附件
// ADOBE SYSTEMS INCORPORATED // Copyright 1993 - 2002 Adobe Systems Incorporated // All Rights Reserved // // NOTICE: Adobe permits you to use, modify, and distribute this // file in accordance with the terms of the Adobe license agreement // accompanying it. If you have received this file from a source // other than Adobe, then your use, modification, or distribution // of it requires the prior written permission of Adobe. //------------------------------------------------------------------------------- #include "Matrix.hpp" #include "PiFilter.h" #include "FilterInfo.h" #include <stdio.h> /************************************************************************/ /* Photoshop 的无参数 filter 例程。 其实要有参数可以自己加对话框(不熟悉windows编程,没实现),,完全没必要采用adobe的框架。 感觉alien skin exposure ; google nik collection等都是自己实现的:先读一个要修改的图像,在自己插件里选好效果后执行,返回结果到PS。 因而学习adobe家的架构不是太必要 adobe_photoshop_sdk下载:[url]http://www.adobe.com/devnet/photoshop.html[/url] 修改自 http://www.cnblogs.com/hoodlum1980/archive/2009/05/11/1453870.html 非常好的中文教程,,但是我改了他的没成功,,年份久了,接口变了,,, 以及 adobe_photoshop_sdk_cc_2014_win 中的 dissolve 例程 最后工程用的dissolve例程的,本文件是例程和该网页综合起来的,还有我自己写的 注意例程使用的是相对路径,,,所以本工程必须放到和例程dissolve的同一级目录才行!!!否则请按以上教程所示自行修改头文件及 编译pipl文件的程序路径 重要参考文献: How to Write a Photoshop Plug-In, Part 1(强烈推荐!!) http://www.mactech.com/articles/mactech/Vol.15/15.04/PhotoshopPlug-InsPart1/index.html Writing a Photoshop Plug-In, Part 2 http://www.mactech.com/articles/mactech/Vol.15/15.05/PhotoshopPlug-InsPart2/index.html adobe_photoshop_sdk_cc_2014_win document (很烂,但毕竟比较全) Photoshop 的插件及其实现:http://www.moon-soft.com/book/plugin.htm */ /************************************************************************/ /************************************************************************/ /* 自己从新建立工程步骤(注意因为下面很多路径使用的是相对路径,,,所以本solution必须放到和例程dissolve的同一级目录(filter文件夹下)才行): 1、新建dll工程,, 拷贝本工程的一应文件 2、更改字符集为multibyte ; 更改输出文件类型为.8bf (debug、release要分别改,,下同) 3、拷贝dissolve工程的 c/c++ -> general -> additional include dictionaries 属性 4、拷贝dissolve工程的 linker -> input 属性 5、添加dissolve工程的common sources对应的cpp文件到本工程 6、右键LC_PSFilter.r,,设置编译属性,,这个直接copy就好 7、更改FilterInfo.h文件中的vendorName,,plugInName,,plugInUniqueID,,plugInDescription等属性 8、按下一个注释块更改本文件中的相关函数实现filter功能 */ /************************************************************************/ /************************************************************************/ /* 说明: 要实现自己的filter,,只需要修改processTile() 函数即可 (当前只是对RGB图像的实现)!!! 如果处理的通道不是RGB或灰度的,则也要修改setChannels()函数。 */ /************************************************************************/ /*******************************************/ //参数区 #ifndef NDEBUG #define USE_LOG //输出日志到桌面上 #endif #define USE_TILE__ //如果定义此项,,则将图片分成128*128的图像处理,如果不定义,则一次性进行处理 /*******************************************/ #ifdef USE_LOG //日志文件会出现在桌面上 #include "Logger.h" //template<typename Val> // void log (Logger& l, const char* des, Val v) { // l.Write (des, false); // l.Write (":\t", false); // l.Write (v, true); // } Logger logIt ("LCInvert"); #define printDesVal(des,v) logIt.Write (des, false);logIt.Write (":\t", false); logIt.Write (v, true); #define printDesValLn(v) printDesVal(#v,v); #define print(val) logIt.Write(val,false); #define println(val) logIt.Write(val,true); #else #define printDesVal(des,v) ; #define printDesValLn(v) ; #define print(val) ; #define println(val) ; #endif #ifdef _MANAGED #pragma managed(push, off) #endif #ifndef DLLExport #define DLLExport extern "C" __declspec(dllexport) #endif //======================================= // 全局变量 //======================================= //dll instance HINSTANCE dllInstance; FilterRecord* gFilterRecord; intptr_t* gData; int16* gResult; SPBasicSuite* sSPBasic = NULL; #define TILESIZE 128 //贴片大小:128 * 128 Rect m_Tile; //当前图像贴片(128*128) //======================================= // 函数列表 //======================================= //辅助函数,拷贝矩形 void CopyPsRect (Rect* src, Rect* dest); //辅助函数,把一个矩形置为空矩形 void ZeroPsRect (Rect* dest); void DoParameters(); void DoPrepare(); void DoStart(); void DoContinue(); void DoFinish(); //辅助函数,拷贝矩形 void CopyPsRect (Rect* src, Rect* dest) { dest->left = src->left; dest->top = src->top; dest->right = src->right; dest->bottom = src->bottom; } //辅助函数,把一个矩形置为空矩形 void ZeroPsRect (Rect* dest) { dest->left = 0; dest->top = 0; dest->right = 0; dest->bottom = 0; } #ifdef _MANAGED #pragma managed(pop) #endif //=================================================================================================== //------------------------------------ 滤镜被ps调用的函数 ------------------------------------------- //=================================================================================================== DLLExport MACPASCAL void PluginMain (const int16 selector, FilterRecordPtr filterRecord, intptr_t * data, int16 * result) { try { //Timer timeIt; //需要#include "Timer.h" print ("Selector: "); print (selector); print ("\t\t\t"); // update our global parameters gData = data; gResult = result; if (selector == filterSelectorAbout) { MessageBox (GetActiveWindow(), plugInDescription, plugInName, MB_OK); //sSPBasic = gFilterRecord->sSPBasic; } else { gFilterRecord = filterRecord; sSPBasic = gFilterRecord->sSPBasic; //虽然这是dissolve例程中的,,,但有下面两句,,直接不执行 continue了。。。。 //另外自己试的 int err = gFilterRecord->advanceState(); 方法也无法正常使用。。。(不报错,但是数据指针均为空)不知道注释了之后行不行,,没试 // if (gFilterRecord->bigDocumentData != NULL) // gFilterRecord->bigDocumentData->PluginUsing32BitCoordinates = true; } // do the command according to the selector switch (selector) { case filterSelectorAbout: println ("filterSelectorAbout"); //DoAbout(); break; case filterSelectorParameters: println ("filterSelectorParameters"); DoParameters(); break; case filterSelectorPrepare: println ("filterSelectorPrepare"); DoPrepare(); break; case filterSelectorStart: println ("filterSelectorStart"); DoStart(); break; case filterSelectorContinue: println ("filterSelectorContinue"); DoContinue(); break; case filterSelectorFinish: println ("filterSelectorFinish"); DoFinish(); break; default: break; } print ("Image size:"); print (filterRecord->imageSize.h); print ("*"); println (filterRecord->imageSize.v); printDesValLn (filterRecord->maxSpace); printDesValLn (filterRecord->planes); printDesValLn (filterRecord->depth); //printDesValLn( timeIt.GetElapsed()); println (""); } // end try catch (...) { if (NULL != result) *result = -1; } } //这里准备参数,就这个滤镜例子来说,我们暂时不需要做任何事 void DoParameters() { } //在此时告诉PS(宿主)滤镜需要的内存大小 void DoPrepare() { if (gFilterRecord != NULL) { gFilterRecord->bufferSpace = 0; gFilterRecord->maxSpace = 0; } } void setChannels() { //设置我们需要处理的通道 int nchanel = 3; switch (gFilterRecord->imageMode) { //我们这里只处理灰度图,或者RGB图像 case plugInModeRGBColor: nchanel = 3; case plugInModeGrayScale: nchanel = 1; default: nchanel = 3; break; } gFilterRecord->inLoPlane = 0; gFilterRecord->inHiPlane = nchanel - 1; gFilterRecord->outLoPlane = 0; gFilterRecord->outHiPlane = nchanel - 1; } //inRect : 滤镜请求PS发送的矩形区域。 //outRect : 滤镜通知PS接收的矩形区域。 //filterRect : PS通知滤镜需要处理的矩形区域。 //由于我们是使用固定的红色进行填充,实际上我们不需要请求PS发送数据 //所以这里可以把inRect设置为NULL,则PS不向滤镜传递数据。 void DoStart() { if (gFilterRecord == NULL) return; #ifdef USE_TILE__ //我们初始化第一个Tile,然后开始进行调用 m_Tile.left = gFilterRecord->filterRect.left; m_Tile.top = gFilterRecord->filterRect.top; m_Tile.right = min (m_Tile.left + TILESIZE, gFilterRecord->filterRect.right); //只要修改这里就变成分tile处理的了 m_Tile.bottom = min (m_Tile.top + TILESIZE, gFilterRecord->filterRect.bottom); #else //不分tile了,一次完成!!!! m_Tile.left = gFilterRecord->filterRect.left; m_Tile.top = gFilterRecord->filterRect.top; m_Tile.right = gFilterRecord->filterRect.right; m_Tile.bottom = gFilterRecord->filterRect.bottom; #endif //设置inRect, outRect //ZeroPsRect (&gFilterRecord->inRect); CopyPsRect (&m_Tile, &gFilterRecord->inRect); CopyPsRect (&m_Tile, &gFilterRecord->outRect); setChannels();//设置需要请求的通道 } template<typename T> void processTile() { //定位像素 int planes = gFilterRecord->outHiPlane - gFilterRecord->outLoPlane + 1; //通道数量 CopyPsRect (&gFilterRecord->outRect, &m_Tile); const int R = m_Tile.bottom - m_Tile.top; const int C = m_Tile.right - m_Tile.left; switch (planes) { case 1: {//单通道图像 T* pOut = (T*) gFilterRecord->outData; T* pIn = (T*) gFilterRecord->inData; LC::Matrix<T> in (pIn, R, C , gFilterRecord->inRowBytes); LC::Matrix<T> out (pOut, R, C, gFilterRecord->outRowBytes); printDesValLn ( (int) pIn[0]); for (int r = 0; r < R; r++) { //Sleep (100); // gFilterRecord->progressProc (r, out.rows() ); //显示进度条,此时按ESC键可以撤销该filter!!! // if (gFilterRecord->abortProc() ) {*gResult=-1; return}; for (int c = 0; c < C; c++) { T& orgb = out (r, c); T& irgb = in (r, c); orgb = LC::maxValInPS<T>() - irgb; } } } break; case 3: { //RGB图像 LC::RGB<T> *pOut = (LC::RGB<T>*) gFilterRecord->outData; LC::RGB<T>* pIn = (LC::RGB<T>*) gFilterRecord->inData; LC::Matrix<LC::RGB<T>> in (pIn, R, C, gFilterRecord->inRowBytes); LC::Matrix<LC::RGB<T>> out (pOut, R, C, gFilterRecord->outRowBytes); printDesValLn ( (int) pIn[0].r); //我们把输出矩形拷贝到 m_Tile for (int r = 0; r < R; r++) { //Sleep (100); // gFilterRecord->progressProc (r, out.rows() ); //显示进度条,此时按ESC键可以撤销该filter!!! // if (gFilterRecord->abortProc() ) {*gResult=-1; return}; for (int c = 0; c < C; c++) { LC::RGB<T>& orgb = out (r, c); LC::RGB<T>& irgb = in (r, c); orgb.r = LC::maxValInPS<T>() - irgb.r; orgb.g = LC::maxValInPS<T>() - irgb.g; orgb.b = LC::maxValInPS<T>() - irgb.b; } } } break; default: *gResult = -1; break; } } //这里对当前贴片进行处理,注意如果用户按了Esc,下一次调用将是Finish void DoContinue() { if (gFilterRecord == NULL) return; gResult = 0; println (gFilterRecord->depth); switch (gFilterRecord->depth) { case 8: processTile<uint8>(); break; case 16: processTile<uint16>(); break; case 32: processTile<uint32>(); break; default: *gResult = -1; break; } //判断是否已经处理完毕 if (gResult != 0 || ( m_Tile.right >= gFilterRecord->filterRect.right && m_Tile.bottom >= gFilterRecord->filterRect.bottom) ) { //处理结束 ZeroPsRect (&gFilterRecord->inRect); ZeroPsRect (&gFilterRecord->outRect); ZeroPsRect (&gFilterRecord->maskRect); return; } //设置下一个tile if (m_Tile.right < gFilterRecord->filterRect.right) { //向右移动一格 m_Tile.left = m_Tile.right; m_Tile.right = min (m_Tile.left + TILESIZE, gFilterRecord->filterRect.right); } else { //向下换行并回到行首处 m_Tile.left = gFilterRecord->filterRect.left; m_Tile.right = min (m_Tile.left + TILESIZE, gFilterRecord->filterRect.right); m_Tile.top = m_Tile.bottom; m_Tile.bottom = min (m_Tile.top + TILESIZE, gFilterRecord->filterRect.bottom); } // ZeroPsRect (&gFilterRecord->inRect); CopyPsRect (&m_Tile, &gFilterRecord->inRect); CopyPsRect (&m_Tile, &gFilterRecord->outRect); } //处理结束,这里我们暂时什么也不需要做 void DoFinish() { }
- LC_PSFilter_Template.7z (14.4 KB)
- 下载次数: 7
发表评论
-
C++函数中的静态变量
2019-07-19 11:22 862在C++中,可以在成员函数中使用静态变量,从而间接达到在hpp ... -
tensorflow 静态编译笔记 -- linux系统
2018-11-05 14:26 0注: 1、编译tensorflow静态库 很简单,参见: h ... -
gperftools笔记
2018-06-27 14:30 0export LD_LIBRARY_PATH=LD_LIBR ... -
dmlc分布式线性模型编译笔记
2018-06-06 10:37 22291、使用第三方修改后的wormhole工程 原始工程wor ... -
C++中读取控制台输出,并将文件指针FILE*转换为istream
2017-11-27 15:03 1945解决的问题: 1、通过执行系统的bash命令后,获取其输出( ... -
c++中使用boost库在共享内存中存储map
2017-11-09 11:37 5629boost库中的interprocess包可以在共享内存中创建 ... -
近似最近邻算法库FLANN
2017-04-25 18:45 0FLANN库是计算近似最近邻的库, 问题定义如下: 给定距离函 ... -
C++杂记-- 重定向std::cout等
2017-04-18 17:28 20361、屏蔽std::cout 参见:http://stackov ... -
CMake指定目标代码的平台(win32,x64)
2016-06-03 20:54 11840主要参考自:http://blog.c ... -
windows 10下安装GPU版MXNet
2016-06-03 21:28 8653上回说到编译CPU版的MXNet: http://cheris ... -
windows下安装CPU版mxnet
2016-05-23 23:14 17685MXnet (mix net)类似Caffe,Tensorfl ... -
照片处理流程-google nik collection 篇
2016-02-24 14:52 1147nik collection视频教程:https://www. ... -
Nik color efex pro 笔记
2016-02-21 20:47 1334nik collection在线教程、文档:https://s ... -
Linux C++编译及 静态/动态 链接库 笔记
2015-12-20 19:49 61201、C++文件的编译 g++参 ... -
Linux (Ubuntu) 下 Eclipse C++ 环境配置
2015-12-08 21:49 19951、安装JDK 参见http://blog.csdn.net/ ... -
PhotoShop - 柔光模式与强光模式 的 响应曲线对比
2015-11-10 17:11 1888从下图可以看出,当同源图层进行混合时,柔光模式和强光模式都加强 ... -
使Visual Assist X支持CUDA的.cu文件的代码提示
2015-07-17 00:05 2388现在安装CUDA很方便了,直接支持Visual Studio。 ... -
CUDA程序block和thread超出硬件允许值时的异常
2015-07-13 11:32 3802调用CUDA的核函数时指定block 和 thread大小,该 ... -
HDR图像PS教程集锦&心得
2015-06-23 09:34 987HDR是指高动态范围的图像,主要原理为提高图像的局部对比度。 ... -
matlab绘制色盘&色调混合模式
2015-06-13 19:25 28021、绘制色盘 代码统一放到最后。 结果如下 2、色调( ...
相关推荐
内容概要:本文详细介绍了基于MATLAB GUI界面和卷积神经网络(CNN)的模糊车牌识别系统。该系统旨在解决现实中车牌因模糊不清导致识别困难的问题。文中阐述了整个流程的关键步骤,包括图像的模糊还原、灰度化、阈值化、边缘检测、孔洞填充、形态学操作、滤波操作、车牌定位、字符分割以及最终的字符识别。通过使用维纳滤波或最小二乘法约束滤波进行模糊还原,再利用CNN的强大特征提取能力完成字符分类。此外,还特别强调了MATLAB GUI界面的设计,使得用户能直观便捷地操作整个系统。 适合人群:对图像处理和深度学习感兴趣的科研人员、高校学生及从事相关领域的工程师。 使用场景及目标:适用于交通管理、智能停车场等领域,用于提升车牌识别的准确性和效率,特别是在面对模糊车牌时的表现。 其他说明:文中提供了部分关键代码片段作为参考,并对实验结果进行了详细的分析,展示了系统在不同环境下的表现情况及其潜在的应用前景。
嵌入式八股文面试题库资料知识宝典-计算机专业试题.zip
嵌入式八股文面试题库资料知识宝典-C and C++ normal interview_3.zip
内容概要:本文深入探讨了一款额定功率为4kW的开关磁阻电机,详细介绍了其性能参数如额定功率、转速、效率、输出转矩和脉动率等。同时,文章还展示了利用RMxprt、Maxwell 2D和3D模型对该电机进行仿真的方法和技术,通过外电路分析进一步研究其电气性能和动态响应特性。最后,文章提供了基于RMxprt模型的MATLAB仿真代码示例,帮助读者理解电机的工作原理及其性能特点。 适合人群:从事电机设计、工业自动化领域的工程师和技术人员,尤其是对开关磁阻电机感兴趣的科研工作者。 使用场景及目标:适用于希望深入了解开关磁阻电机特性和建模技术的研究人员,在新产品开发或现有产品改进时作为参考资料。 其他说明:文中提供的代码示例仅用于演示目的,实际操作时需根据所用软件的具体情况进行适当修改。
少儿编程scratch项目源代码文件案例素材-剑客冲刺.zip
少儿编程scratch项目源代码文件案例素材-几何冲刺 转瞬即逝.zip
内容概要:本文详细介绍了基于PID控制器的四象限直流电机速度驱动控制系统仿真模型及其永磁直流电机(PMDC)转速控制模型。首先阐述了PID控制器的工作原理,即通过对系统误差的比例、积分和微分运算来调整电机的驱动信号,从而实现转速的精确控制。接着讨论了如何利用PID控制器使有刷PMDC电机在四个象限中精确跟踪参考速度,并展示了仿真模型在应对快速负载扰动时的有效性和稳定性。最后,提供了Simulink仿真模型和详细的Word模型说明文档,帮助读者理解和调整PID控制器参数,以达到最佳控制效果。 适合人群:从事电力电子与电机控制领域的研究人员和技术人员,尤其是对四象限直流电机速度驱动控制系统感兴趣的读者。 使用场景及目标:适用于需要深入了解和掌握四象限直流电机速度驱动控制系统设计与实现的研究人员和技术人员。目标是在实际项目中能够运用PID控制器实现电机转速的精确控制,并提高系统的稳定性和抗干扰能力。 其他说明:文中引用了多篇相关领域的权威文献,确保了理论依据的可靠性和实用性。此外,提供的Simulink模型和Word文档有助于读者更好地理解和实践所介绍的内容。
嵌入式八股文面试题库资料知识宝典-2013年海康威视校园招聘嵌入式开发笔试题.zip
少儿编程scratch项目源代码文件案例素材-驾驶通关.zip
小区开放对周边道路通行能力影响的研究.pdf
内容概要:本文探讨了冷链物流车辆路径优化问题,特别是如何通过NSGA-2遗传算法和软硬时间窗策略来实现高效、环保和高客户满意度的路径规划。文中介绍了冷链物流的特点及其重要性,提出了软时间窗概念,允许一定的配送时间弹性,同时考虑碳排放成本,以达到绿色物流的目的。此外,还讨论了如何将客户满意度作为路径优化的重要评价标准之一。最后,通过一段简化的Python代码展示了遗传算法的应用。 适合人群:从事物流管理、冷链物流运营的专业人士,以及对遗传算法和路径优化感兴趣的科研人员和技术开发者。 使用场景及目标:适用于冷链物流企业,旨在优化配送路线,降低运营成本,减少碳排放,提升客户满意度。目标是帮助企业实现绿色、高效的物流配送系统。 其他说明:文中提供的代码仅为示意,实际应用需根据具体情况调整参数设置和模型构建。
少儿编程scratch项目源代码文件案例素材-恐怖矿井.zip
内容概要:本文详细介绍了基于STM32F030的无刷电机控制方案,重点在于高压FOC(磁场定向控制)技术和滑膜无感FOC的应用。该方案实现了过载、过欠压、堵转等多种保护机制,并提供了完整的源码、原理图和PCB设计。文中展示了关键代码片段,如滑膜观测器和电流环处理,以及保护机制的具体实现方法。此外,还提到了方案的移植要点和实际测试效果,确保系统的稳定性和高效性。 适合人群:嵌入式系统开发者、电机控制系统工程师、硬件工程师。 使用场景及目标:适用于需要高性能无刷电机控制的应用场景,如工业自动化设备、无人机、电动工具等。目标是提供一种成熟的、经过验证的无刷电机控制方案,帮助开发者快速实现并优化电机控制性能。 其他说明:提供的资料包括详细的原理图、PCB设计文件、源码及测试视频,方便开发者进行学习和应用。
基于有限体积法Godunov格式的管道泄漏检测模型研究.pdf
嵌入式八股文面试题库资料知识宝典-CC++笔试题-深圳有为(2019.2.28)1.zip
少儿编程scratch项目源代码文件案例素材-几何冲刺 V1.5.zip
Android系统开发_Linux内核配置_USB-HID设备模拟_通过root权限将Android设备转换为全功能USB键盘的项目实现_该项目需要内核支持configFS文件系统
C# WPF - LiveCharts Project
少儿编程scratch项目源代码文件案例素材-恐怖叉子 动画.zip
嵌入式八股文面试题库资料知识宝典-嵌⼊式⼯程师⾯试⾼频问题.zip