欢迎光临
我们一直在努力

程序员在散景中显示裁剪的图像 – javascript

程序员面试经验

我正在以散景的形式在图中显示图片,并且正在使用BoxSelectTool绘制矩形。

box_select = BoxSelectTool(callback=callback)  p2 = figure(x_range=(0,700), y_range=(0,500),plot_width=1100,plot_height=1100,tools=[box_select]) p2.image_url( url='url',          x=1, y=1, w=700, h=500, anchor="bottom_left",source=im_src)  rect_source = ColumnDataSource(data=dict(x=[], y=[], width=[], height=[])) callback = CustomJS(args=dict(rect_source=rect_source), code="""     // get data source from Callback args     var data = rect_source.data;      /// get BoxSelectTool dimensions from cb_data parameter of Callback     var geometry = cb_data['geometry'];      /// calculate Rect attributes     var width = geometry['x1'] - geometry['x0'];     var height = geometry['y1'] - geometry['y0'];     var x = geometry['x0'] + width/2;     var y = geometry['y0'] + height/2;      /// update data source with new Rect attributes     data['x'].push(x);     data['y'].push(y);     data['width'].push(width);     data['height'].push(height);      rect_source.data = data;     rect_source.change.emit(); ''' 

现在,我想在绘制矩形之后,不单击按钮或其他任何内容,以不同的较小图形显示该图像区域:

d2 = figure(x_range=(0,200), y_range=(0,100),plot_width=200,plot_height=100) d2.image( image='image',          x=1, y=1, dw=100, dh=100, source=img)  img = ColumnDataSource( data=dict(image=[])) 

所以我在JS中需要这样的东西:

tmp_im = cv2.imread('static/' + str(im_nr) + '.jpg') tmp_im = tmp_im[geometry['y0']:geometry['y1'],geometry['x0']:geometry['x1']] tmp_im = cv2.cvtColor(tmp_im, cv2.COLOR_BGR2GRAY) img.data = dict(image=[tmp_im]) 

如何在JS + bokeh中做到这一点?

javascript大神给出的解决方案

我建议使用模块holoviews(pyviz生态系统的一部分)执行此任务,该模块可提供对bokeh的高级访问。

Holoviews提供了所谓的streams,可以与DynamicMaps一起使用,以基于流的(不断变化的)值生成动态图形。

模块panel(也是pyviz生态系统的一部分)可用于定义可视化的布局。

import numpy as np import holoviews as hv from holoviews import opts from holoviews.streams import BoundsXY import panel as pn  pn.extension() # loading the panel extension for use with notebook opts.defaults(opts.Image(tools=['box_select'])) # making sure, that box_select is available  minval, maxval = 0, 200  # x-y data ls = np.linspace(minval, 10, maxval) xx, yy = np.meshgrid(ls, ls) # z-data, e.g. intensity zz = xx*yy  # min and max, later used to recalibrate the colormapping zzmin = zz.min() zzmax = zz.max()   bounds=(0,0, 1,1) # bounds used for the image im = hv.Image(zz, bounds=bounds)  # stream, xy-data are provided by the box_select-tool # As start values the same bounds as for the image are used. box = BoundsXY(bounds=bounds)   # The box-stream is used to draw a rectangle dynamically # based on the current selection using the box_select-tool. rect = hv.DynamicMap(     lambda bounds: hv.Bounds(bounds),     streams=[box])  # The box-stream is used to draw an image dynamically # based on the current selection using the box_select-tool. im_select = hv.DynamicMap(     lambda bounds: im[bounds[0]:bounds[2],bounds[1]:bounds[3]],     streams=[box])  # Arranging the layout. # With redim.range we make sure the colormapping uses the original min- and max-values as in 'im', # and not the min- and max-values from 'im_select'. layout = pn.Row(im * rect                  +                 im_select.redim.range(z=(zzmin, zzmax)))  layout.app() 

在散景中显示裁剪的图像 - javascript

如果__name__ =='__main__',则为Python的Powershell等效项: – python

我真的很喜欢python的功能,例如:if __name__ == '__main__': #setup testing code here #or setup a call a function with parameters and human format the output #etc… 很好,因为我可以将Python脚本文件…

Java日期格式解析 – java

我正在尝试通过JSON响应更改日期格式,但我一直在获取java.text.ParseException。这是来自服务器2015-02-03T08:37:38.000Z的日期,我希望它显示为2015/02/03这是yyyy-MM-dd。而我做到了。DateFormat df1 = new SimpleDateFormat("yyyy-MM-dd&#0…

Java-如何将此字符串转换为日期? – java

我从服务器收到此消息,我不明白T和Z的含义,2012-08-24T09:59:59Z将此字符串转换为Date对象的正确SimpleDateFormat模式是什么? java大神给出的解决方案 这是ISO 8601标准。您可以使用SimpleDateFormat simpleFormat = new SimpleDateFormat("yyyy-MM…

如何检查Point是否在对角线上? – java

我有一个canvas和lines。在click上,我想检查单击是否在我的行上以突出显示它。我也有一些rectangles,只需使用正方形的start和end point即可轻松实现。但是对于diagonal line,我不能使用相同的技术,因为直线当然不能填充矩形。但是我还能怎么做到呢?此外,我还希望有一些“偏移”,这样,如果单击距线条足够近,它也会被标记,…

可以在没有操作系统的情况下运行Java程序吗? – java

我知道所有Java程序都由JVM执行。这使Java与所有操作系统兼容(一次编写,可在任何地方运行)。但是我可以在没有操作系统的情况下运行Java程序吗?也许只运行JVM?并且,如果可能,功能是否会受到任何影响?注意:我的主要问题是,java程序可以直接在硬件上运行(通过JVM)吗?我可以在计算机中“启动”任何低级别的JVM吗? java大神给出的解决方案 实…

赞(0)
未经允许不得转载: 京大飞辅助网程序员面试-区块链javago面经 » 程序员在散景中显示裁剪的图像 – javascript

相关推荐

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址