当前位置: 首页 > news >正文

程序员招聘求职的网站水滴保险官方网站

程序员招聘求职的网站,水滴保险官方网站,wordpress 页面标签页,微站小程序需求#xff1a; 在浏览器中给用户呈现一张图片#xff0c;用户点击图片中的某些标志物#xff0c;需要系统给出标志物的信息反馈#xff0c;达到一个交互的作用。 比如下图中#xff0c;点击某个封闭区域时候#xff0c;需要告知用户点击的区域名称及图形形状特性等等。…需求 在浏览器中给用户呈现一张图片用户点击图片中的某些标志物需要系统给出标志物的信息反馈达到一个交互的作用。 比如下图中点击某个封闭区域时候需要告知用户点击的区域名称及图形形状特性等等。 实现思路模仿 window系统中画图工具的区域填充工具。 当我们给一个封闭区域填充色彩的时候整个区域都将得到填充相同的颜色此区域封闭即可这样我们将一张图片中的不同区域填充不同的色彩得到如下的图片 后续只需要通过xy坐标得到颜色在通过颜色得到对应的图片相关信息即可。应用时候的复杂度为O(1) 实现代码如下 import javax.imageio.ImageIO;import static org.assertj.core.api.Assertions.useDefaultDateFormatsOnly;import java.awt.image.BufferedImage; import java.io.File; import java.io.IOException; import java.util.ArrayList; import java.util.Arrays; import java.util.HashMap; import java.util.List; import java.util.Map;public class ImageRGBMatrix {//边界的颜色static final int flagColor 237;//需要填充的色彩static int setColor 20(0xFF 8);public static void main(String[] args) {try {// 读取图片BufferedImage image ImageIO.read(new File(C:\\Users\\hxd\\Desktop\\pdy.png));int width image.getWidth();int height image.getHeight();初始化特征矩阵//int[][] characteristicMatrix new int[width][height];// 遍历图片的每个像素for (int x 0; x width; x) {for (int y 0; y height; y) {// 获取(x, y)位置的像素int pixel image.getRGB(x, y);// 获取RGB分量short red (short) ((pixel 16) 0xFF); // short green (short) ((pixel 8) 0xFF); // short blue (short) (pixel 0xFF);characteristicMatrix[x][y] red;}}///初始化特征矩阵完成////基于点进行矩阵区域填充/ListPoint ps new ArrayList();ps.add(new Point(116,140,1,A,0));ps.add(new Point(427,116,2,B,0));ps.add(new Point(203,426,3,C,0));ps.add(new Point(661,382,4,D,0));ps.add(new Point(543,609,5,E,0));MapInteger,Point color2Points new HashMap(); for (Point p : ps) {int my p.getY();int mx p.getX();setColor 40;p.setColor(setColor);color2Points.put(setColor, p);//初始上for (int y my; y -1 characteristicMatrix[mx][y] !flagColor; y--) {characteristicMatrix[mx][y] setColor;}//初始下for (int y my1; y height characteristicMatrix[mx][y] !flagColor; y) {characteristicMatrix[mx][y] setColor;}//记录是否有新增加的点boolean isAdd true;while(isAdd) {//一旦没有扩充新鲜点则退出//横向扩充isAdd leftRigthScan(width, height, characteristicMatrix);if(isAdd) {//轴向扩充isAdd upDownScan(width, height, characteristicMatrix);}}}///基于点进行矩阵区域填充完成////开始实在使用找到具体的点在哪个区域/ ListPoint pp new ArrayList();pp.add(new Point(116,140));pp.add(new Point(116,145));pp.add(new Point(596,358));for (Point p : pp) {int color characteristicMatrix[p.getX()][p.getY()];System.out.println(color2Points.get(color));}///开始实在使用找到具体的点在哪个区域完成////可视化输出仅仅是让给人看看填充是否正确对实际使用没有作用/BufferedImage image1 new BufferedImage(width,height,BufferedImage.TYPE_INT_RGB);for (int x 0; x width; x) {for (int y 0; y height; y) {image1.setRGB(x,y,characteristicMatrix[x][y]);}}ImageIO.write(image1, png, new File(d:\\pdypdypdy.png));///可视化输出仅仅是让给人看看填充是否正确对实际使用没有作用/} catch (IOException e) {e.printStackTrace();}}/*** 纵向扫描* 从左到右一列一列的扫描* 从上到下扫描y列 y在变化* 1、如果是非着色的点则继续下移。如果是着色点执行2、3两步骤。如果超出数组边界则开始下一列* 2、基于此着色点向上侧扩张直到上侧点是边界点或者下标超出数组下界0* 3、基于此着色点向下侧扩张直到下侧点是边界点或者下标超出数组上界height更新扫描点为当前最下侧扩张点 继续第1步执行。* * * param width* param height* param characteristicMatrix* return*/private static boolean upDownScan(int width, int height, int[][] characteristicMatrix) {boolean isAdd false;//看横向的线for (int x 0; x width; x) {int y 0;while(y height) {for (; y height; y) {if(characteristicMatrix[x][y] setColor) {break ;}}if(y height) {//此列有//处理上边for (int uy y-1; uy -1 characteristicMatrix[x][uy] !flagColor; uy--) {if(characteristicMatrix[x][uy] ! setColor) {characteristicMatrix[x][uy] setColor;isAdd true;}}//处理下边for (y y1; y height characteristicMatrix[x][y] !flagColor; y) {if(characteristicMatrix[x][y] ! setColor) {characteristicMatrix[x][y] setColor;isAdd true;}}}}}return isAdd;}//左右横向扫描/*** 左右横向扫描* 从上到下一行一行的开始扫描扩张。* 从左到右扫描x行* 1、如果是非着色的点则继续右移。如果是角色点执行2、3两步骤。如果超出数组边界则开始下一行* 2、基于此着色点向左侧扩张直到左侧点是边界点或者下标超出数组下界0* 3、基于此着色点向右侧扩张直到右侧点是边界点或者下标超出数组上界width更新扫描点为当前最右侧扩张点 继续第1步执行。* * param width* param height* param characteristicMatrix* return*/protected static boolean leftRigthScan(int width, int height, int[][] characteristicMatrix) {boolean isAdd false;for (int y 0; y height; y) {int x 0;while(x width) {for (; x width; x) {if(characteristicMatrix[x][y] setColor) {break ;}}if(x width) {//此行有//处理左边for (int lx x-1; lx -1 characteristicMatrix[lx][y] !flagColor; lx--) {if(characteristicMatrix[lx][y] ! setColor) {characteristicMatrix[lx][y] setColor;isAdd true;}}//处理右边for (x x1; x width characteristicMatrix[x][y] !flagColor; x) {if(characteristicMatrix[x][y] ! setColor) {characteristicMatrix[x][y] setColor;isAdd true;}}}}}return isAdd;} }
http://www.w-s-a.com/news/27709/

相关文章:

  • 网站开发项目职责门户资源分享网站模板
  • 建网站需要什么语言如何做二维码跳转到网站
  • 天津建设交培训中心网站做网站起名字
  • 黑河北京网站建设湛江市住房和城乡建设局网站
  • 网站建设拾金手指下拉十九企业查询官网
  • 邢台提供网站建设公司哪家好五合一建站
  • 京东网站设计代码驻马店做网站的公司
  • 织梦网站模板使用教程福州网站建设工作
  • 做网站要准备的需求asp 网站后台
  • 滨州网站开发公司中立建设集团有限公司网站
  • 泰安建设厅网站做网站为什么要建站点
  • 有什么好的手机推荐网站创建网站需要哪些工作
  • 网站能给企业带来什么上饶市网站建设公司
  • 学做网站卖东西去哪学南宁网站建设gxjzdrj
  • 欧美网站建设案例网站开发 男生
  • 网站正在开发中做电子元器件的网站
  • 做网站搭建的公司中国建设银行官网站u盾证书
  • 大连哪里有手机自适应网站建设公司网站介绍模板 html
  • 佛山模板建站宣传片制作公司电话
  • 文字网站居中能自己做网站接业务吗
  • 免备案自助建站网站广州珈瑶公司是哪一年注册的
  • ps做网站界面wordpress为图片添加圆角
  • seo优化推广业务员招聘seo顾问服务福建
  • 成都私人网站建设seo网站推广方案策划书
  • 广州网站建设工作室wordpress log
  • 网站后台添加wordpress h1标签优化
  • 自己做网站都需要什么高密 网站建设
  • 网站语言选择郑州本地做团购的网站
  • dw网页设计模板图片谷歌wordpress优化
  • 网站seo优化要怎么做礼品公司怎么做网站