#include <iostream>
#include <string>
using namespace std;
int main()
{
int a = 55;
double b = 65.123;
string str = "";
//头文件是sstream
std::ostringstream oss;
oss << a << "---" << b;
str = oss.str();
cout << str << endl;
return 0;
}
输出是55—65.123。
如果想实现小数点后只显示一位数字,使用下面方法:
#include <iostream>
#include <sstream>
#include <iomanip>
template <class T>
std::string fmt(T in, int width = 0, int prec = 0) {
std::ostringstream s;
s << std::setw(width) << std::setprecision(prec) << in;
return s.str();
}
int main(){
std::string s = fmt(66.0 / 30.0, 2, 2);
std::cout << s << "\n";
}
最近由于需要,要将读入的RGB图像转化成灰度图像,然后对图像加噪声,以验证去噪算法的效率。ITK在最新的4.6.0中就集成了Image Noise一个模块,里面有给图像加高斯噪声、斑点噪声、椒盐噪声和计算PSNR(峰值信噪比)的算法,但MITK使用的是ITK4.5.0的库,我们无法直接调用这些加噪Filter。
使用PluginGenerator1.4.0生成出来的MITK插件并不能直接放到projectTemplate里使用。原因是CMake编译的时候出错,会提示你修改刚刚生成插件中的CMakeLists.txt。
插件中编码时,想使用itk中的算法,就必须先引用该算法头文件,但很有可能VS找不到这个头文件。你可能会选择在工程设置中手动添加头文件,但这种方法非常费力,且新建一个工程时又得重新添加。 好的办法是,找到projectTemplate中Plugins文件夹下的该插件文件夹,如my.awesomeproject.AddNoise.
找到CMakeLists.txt文档,将最后一句改为MODULE_DEPENDS MitkQtWidgetsExt MitkSegmentation。然后重新编译projectTemplate即可。
附:(插件下CMakeLists.txt文档中的内容)
project(my_awesomeproject_AddNoise)
MACRO_CREATE_MITK_CTK_PLUGIN(
EXPORT_DIRECTIVE ADDNOISE_EXPORT
EXPORTED_INCLUDE_SUFFIXES src
MODULE_DEPENDS MitkQtWidgetsExt MitkSegmentation
)
MITK官方网站:www.mitk.org
使用MITK编程的一般流程为: