培训网 JAVA培训机构 苏州其然软件开发培训
首页 找课程 找学校 教育新闻 培训问答

苏州其然软件开发培训

13013833891 预约试听 在线客服

您的位置: 资讯首页 > JAVA培训资讯 > 太仓开发java培训_太仓JAVA培训

太仓开发java培训_太仓JAVA培训

来源:中华网考试编辑:佚名发布时间:2018-10-18
太仓开发java培训
其然IT 教育师资

吴嘉俊(Stef)高级讲师

拥有多年的Java开发经验,CTO,EasyJF开源团队创始人之一、负责 EasyJWeb项目的开发和维护。曾在国内多家大型软件公司负责公司内部框架的开发和维护,为多个大中型公司做过架构和技术咨询。曾组织开发了蓝源 装饰行业ERP、美国EMR、蓝源服装行业连锁管理系统、蓝源SaaS服务平台、蓝源Eloan互联网金融综合解决方案等系统产品。具有非常丰富项目开发和 管理经验。

擅长技术:主流JavaEE,Android技术,对 Spring、JPA、Hibernate、 MyBatis、Struts2、MongoDB、Redis等技术领域有深入研究。 

吴老师有丰富的Java培训经验和IT培训行业顾问经验;授课激情,有感染力 ,注重对底层原理的剖析和理解;善于培养学生对编程的兴趣; 

太仓开发java培训

Java工程师的工资待遇怎么样?

太仓开发java培训

Java工程师的工资待遇怎么样?

Java软件工程师一般月薪范围在4000-10000元,远远超过了应届毕业生月薪 2500元的平均水平。通常来说,有一年工作经验的Java高级软件工程师的薪酬大致在年薪10—13万左右。

从Java的应用领域来分,Java语言的应用方向主要表现在以下三个方面:首 先是大中型的商业应用;其次是桌面应用,就是常说的C/S应用;再次是移动领域应用。

综上而言JAVA就业方向为:可以从事JSP网站开发、Java编程、Java游戏开 发、Java桌面程序设计,以及其他与Java语言编程相关的工作。可进入电信、银行、保险专业软件开发公司等从事软件设计和开发工作。

java工程师课程


太仓开发java培训

课程大纲

一阶段 二阶段 三阶段
  • 语言基础、Java基础

  • Java多线程

  • Java网络编程

  • 程序调试/单元测试

  • XML

  • 数据库

  • 数据结构与算法

  • Html/Css/Javascript

  • Html5开发

  • CSS3

  • CSS命名规范、优化 、使用技巧

  • JSP、Servlet、Ajax 、数据库缓冲池、Tomcat

  • 项目开发流程及管理 、CMMI

  • 云计算

  • 大数据

  • 设计模式

  • MyBatis

  • Redis

  • Spring

  • SpringBoot

  • JMS

  • SpringCloud

  • Docker

  • Java前沿技术 常用 企业解决方案

  • UML/OOD/OOP

opencv学习笔记(二十八)直方图程序的改进版


>

改进实例1——加一个进度条控制横坐标bin

#include <opencv2/opencv.hpp> #include <iostream> using namespace std; #define cvQueryHistValue_1D( hist, idx0 ) ((float)cvGetReal1D( (hist)->bins, (idx0))) int hist_size= 200; //直方图横坐标——bin int hist_height= 300; ////直方图纵坐标——随意定 void on_trackbar( int pos ) ; void main( ) { iplImage * src= cvLoadImage("b.jpg"); IplImage* gray_plane = cvCreateImage(cvGetSize(src),8,1); cvCvtColor(src,gray_plane,CV_BGR2GRAY); float range[] = {0,255}; //灰度级的范围 float* ranges[]={range}; //就是用指针指向这个数组, //然后这个指针就能访问和控制这个数组了。 cvNamedWindow( "H-S Histogram", CV_WINDOW_AUTOSIZE ); cvNamedWindow( "GraySource", CV_WINDOW_AUTOSIZE ); while(1) { cvCreateTrackbar( "position", "H-S Histogram",&hist_size,255, on_trackbar );//滑块位置的**大值为180. //on_trackbar(0);——本来有这句话,怎么运行都不成功,后来发现,根本不需要好不好。cvCreateTrackbar函数运行的时候自己就会调用on_trackbar()函数。 cout <<hist_size<< endl; CvHistogram* gray_hist = cvCreateHist(1,&hist_size,CV_HIST_ARRAY,ranges,1); //计算灰度图像的一维直方图 cvCalcHist(&gray_plane,gray_hist,0,0); //归一化直方图 cvNormalizeHist(gray_hist,1.0); int scale = 3; //创建一张一维直方图的“图”,横坐标为bin IplImage* hist_image = cvCreateImage(cvSize(hist_size*scale,hist_height),8,3); cvZero(hist_image); //统计直方图中的**大直方块 float max_value = 0; cvGetMinMaxHistValue(gray_hist, 0,&max_value,0,0); //分别将每个直方块的值绘制到图中 for(int i=0;i<hist_size;i ) { float bin_val = cvQueryHistValue_1D(gray_hist,i); int intensity = cvRound(bin_val*hist_height/max_value); //要绘制的高度 cvRectangle(hist_image, cvPoint(i*scale,hist_height-1), cvPoint((i 1)*scale - 1, hist_height - intensity), CV_RGB(255,255,255)); } cvShowImage("GraySource",gray_plane); cvShowImage( "H-S Histogram", hist_image ); if (cvWaitKey(0) == 27)break; } cvDestroyAllWindows(); } void on_trackbar( int pos ) //定义一个回调函数——pos是形参,随便起一个名字 { hist_size=pos; }

程序运行时的问题 运行这个程序的时候,发现怎么改变滑块的值,直方图根本不变化。后来才发现,按下滑块之后,还要按【回车】键,直方图才会变化。 ——不知道为什么,也没百度到答案。 while(1)是要有的,本来就是为了能够实时刷新显示直方图——结果还需要配合手动按回车键,呵呵。

改进实例2:进度条控制hsv格式的h通道的直方图 还是需要按下滑块之后,再按【回车】键,直方图才会变化。

#include <opencv2/opencv.hpp> #include <iostream> using namespace std; #define cvQueryHistValue_1D( hist, idx0 ) ((float)cvGetReal1D( (hist)->bins, (idx0))) int hist_size= 200; //直方图横坐标——bin int hist_height= 300; //直方图纵坐标——随意定 void on_trackbar( int pos ) ; int main(int argc, char** argv) { IplImage * src= cvLoadImage("b.jpg"); IplImage* hsv = cvCreateImage(cvGetSize(src), 8, 3); cvCvtColor(src, hsv, CV_BGR2HSV); IplImage* h_plane = cvCreateImage(cvGetSize(src), 8, 1); IplImage* s_plane = cvCreateImage(cvGetSize(src), 8, 1); IplImage* v_plane = cvCreateImage(cvGetSize(src), 8, 1); cvSplit(hsv, h_plane, s_plane, v_plane, 0); float range[] = {0,255}; //灰度级的范围 float* ranges[]={range}; //就是用指针指向这个数组,然后这个指针就能访问和控制这个数组了。 cvNamedWindow( "H-S Histogram", CV_WINDOW_AUTOSIZE ); cvNamedWindow( "GraySource", CV_WINDOW_AUTOSIZE ); while(1) { cvCreateTrackbar( "position", "H-S Histogram",&hist_size,255, on_trackbar );//滑块位置的**大值为180. // cout <<hist_size<< endl; CvHistogram* h_hist = cvCreateHist(1,&hist_size,CV_HIST_ARRAY,ranges,1); //计算灰度图像的一维直方图 cvCalcHist(&h_plane,h_hist,0,0); //归一化直方图 cvNormalizeHist(h_hist,1.0); int scale = 3; IplImage* hist_image = cvCreateImage(cvSize(hist_size*scale,hist_height),8,3); cvZero(hist_image); //统计直方图中的**大直方块 float max_value = 0; cvGetMinMaxHistValue(h_hist, 0,&max_value,0,0); //分别将每个直方块的值绘制到图中 for(int i=0;i<hist_size;i ) { float bin_val = cvQueryHistValue_1D(h_hist,i); //像素i的概率 int intensity = cvRound(bin_val*hist_height/max_value); //要绘制的高度 cvRectangle(hist_image, cvPoint(i*scale,hist_height-1), cvPoint((i 1)*scale - 1, hist_height - intensity), CV_RGB(255,255,255)); } cvShowImage("GraySource",h_plane); cvShowImage( "H-S Histogram", hist_image ); if (cvWaitKey(0) == 27)break; } cvDestroyAllWindows(); } void on_trackbar( int pos ) //定义一个回调函数——pos是形参,随便起一个名字 { hist_size=pos; }


相关推荐:


苏州JAVA培训   苏州JAVA培训班   苏州JAVA培训机构

推荐机构 相关机构 更多课程

申请试听名额

已有10254人申请免费试听

01电话咨询 | 13013833891

QQ:1413838287
加盟合作:0755-83654572