Where communities thrive


  • Join over 1.5M+ people
  • Join over 100K+ communities
  • Free without limits
  • Create your own community
People
Repo info
Activity
    Ian Gilman
    @iangilman
    Wow, so you're making a DZI with GIF tiles? I assume you have to disable the canvas renderer to make them animate?
    I'm impressed it works at all!
    @cozymoses ^
    cozymoses
    @cozymoses
    haha let me clarify, the majority of it is static vectors/images, we're using animated GIF tiles for specific animated hot spots as that was our best solution. However if there's a method to just overlay a transparent video we wanted to look into that as well. Wondering if anyone else has experience with animated overlays/animated videos with transparency? GIF is limited and has pretty crappy transparency cleanup.
    cozymoses
    @cozymoses
    We are using the tiles as overlays current :)
    Ian Gilman
    @iangilman
    @cozymoses Here's an example of using a GIF as an overlay: https://codepen.io/antonioxdias/pen/JmZova you should be able to use a similar technique for any other kind of HTML element, such as a video.
    bsdis
    @bsdis
    hi - i need capabilities to do annotations on OpenSeaDragon(OSD) (drawing and dragging bounding boxes with different colors on top of OSD). I found that the library annotorious had made an integration with OSD some years ago...but it also seems pretty dead and abandoned, so I did not go down that road. I found various plugins that does a little bit of what I want but not any annotation plug ins as such. Can it really be true that nobody built a proper annotation plugin for OSD? Currently I am looking into making the OSD work with paperjs overlay and go that route...but I wonder what everybody else is doing? I can hardly be the first who needs annotation for OSD
    Ian Gilman
    @iangilman
    @bsdis I don't know that there's anything beyond what you seem to have found. Of course there are more intense solutions like https://projectmirador.org/ but that's probably not what you're looking for either. I think probably most people build their own solution on top of the plugins that exist. Of course if you're up for making a more robust annotation plugin, I imagine there would be people excited about that...
    Mark Salsbery
    @msalsbery
    @bsdis There is a LOT of people/organizations annotating in the OpenSeadragon viewer, but not so much has been open sourced as you've seen. Since you'd like to start with paperjs, I assume you've seen https://github.com/eriksjolund/OpenSeadragonPaperjsOverlay It's a pretty good start on using paperjs. The README.md shows a bit of the current pointer event handling issues that will apply to any annotation solution. I'm currently updating OpenSeadragon's MouseTracker class to make dealing with pointer events easier in these scenarios, so if you have questions/rants/suggestions/requests/etc please let me know!
    bsdis
    @bsdis
    Hi, I saw this old issue: openseadragon/openseadragon#1045 for putting reference strip outside the viewer. Looks like it got closed though. Is this now a feature supported in openseadragon somehow? Or should one build this manually still?
    Tammy DiPrima
    @tdiprima
    Has anyone ever tried to put 2 openseadragon <div>'s on top of each other, and then colorize each, and make them transparent? (Like if one <div> is colored red, and the other is yellow, what you end up seeing is orange)?
    bsdis
    @bsdis
    Hi I am using svgoverlay plugin and selection plugin. I have the following code: https://paste.ubuntu.com/p/wnNv8bThtj/ but for some reason nothing is being drawn when that code is executed. Should the coordinates somehow be rescaled first ?
    Ian Gilman
    @iangilman
    @bsdis Looks like #1045 is still open. My suggestion there was that it should be pulled out and made into a robust plugin.
    @tdiprima It seems like that would work. You could also make a single OpenSeadragon and put two images into it. You could then colorize each image separately using https://github.com/usnistgov/OpenSeadragonFiltering. I've done that and it works pretty well.
    Ian Gilman
    @iangilman
    @bsdis Good question... I know the SVG overlay plugin uses viewport coordinates... I'm not sure about the selection plugin. What sort of numbers does it log out? How does that compare to viewer.viewport.getBounds()?
    Tammy DiPrima
    @tdiprima
    Hi @iangilman! Ya, I was playing with OpenSeadragonFiltering the other day. I implemented an overlay like you do in your http://codepen.io/iangilman/pen/YXRLea example. But then when I went to add the filtering, I said :oops: the setFilterOptions() acts on the viewer. So I'm confused about how that would work with a tileSources array. How were you able to apply a filter on two images?
    Tammy DiPrima
    @tdiprima
    I made a prototype to colorize it...
        let x = OpenSeadragon.Filters.GREYSCALE;
        x.prototype.COLORIZE = function (r, g, b) {
          return function (context, callback) {
            var imgData = context.getImageData(
              0, 0, context.canvas.width, context.canvas.height);
            var pixels = imgData.data;
            for (var i = 0; i < pixels.length; i += 4) {
              pixels[i] = r * pixels[i] / 255;
              pixels[i + 1] = g * pixels[i + 1] / 255;
              pixels[i + 2] = b * pixels[i + 2] / 255;
              pixels[i + 3] = 255;
            }
            context.putImageData(imgData, 0, 0);
            callback();
          };
        };
    Tammy DiPrima
    @tdiprima
    @iangilman when you say you applied a filter to two images, do you mean one colorize filter for each image, or one colorize filter for both images?
    Ian Gilman
    @iangilman
    @tdiprima Yes, you can choose which image to apply it to. Take a look at https://github.com/usnistgov/OpenSeadragonFiltering#specify-on-which-items-tiledimage-to-apply-the-filters
    Roman Hnatiuk
    @rhnatiuk
    Hi. Is there any way to avoid getting thin/faint DZI tile borders visible in case PNG tiles are used instead of JPEG (every browser, except Chrome, including FF, IE11, and Edge is affected)? Those borders are a bit disturbing, and people complain about them. Thank you for ideas!
    Tammy DiPrima
    @tdiprima

    Hey @iangilman, I'm sorry to bother u. But the filter didn't work. The example "specify-on-which-items-tiledimage-to-apply-the-filters" did not work at all. And then I created my own colorize filter. And for some reason, when I step through the code the viewer.world.getItemAt(0), and viewer.world.getItemAt(1), are both undefined, yet the entire image comes out red. Not one red and one yellow. Weird that their example and my example both did not work, but in different ways. Got any ideas?

    // Color filters do not work separately
    // Invert and brightness don't work at all :\
    viewer.setFilterOptions({
      filters: [{
        items: viewer.world.getItemAt(0),
        processors: [
          // OpenSeadragon.Filters.INVERT()
          x.prototype.COLORIZE(255, 255, 0)
        ]
      }, {
        items: viewer.world.getItemAt(1),
        processors: [
          // OpenSeadragon.Filters.BRIGHTNESS(50)
          x.prototype.COLORIZE(255, 0, 0) // <-- this is the color that gets set for both
        ]
      }]
    });

    @avandecreme do you have any idea what could be wrong?

    Tammy DiPrima
    @tdiprima
    I think I know what's wrong. viewer.world.getItemCount() is always gonna be zero until after the page loads. :white_check_mark: Yep. That's what it was.
    Ian Gilman
    @iangilman
    @rhnatiuk Here's the issue you're talking about: openseadragon/openseadragon#1683 in it I lay out what needs to happen. Basically someone needs to dive into the issue and figure out the best solution. Are you up for giving it a try?
    @tdiprima Indeed... You need to wait for the "open" event. Glad you got it figured out!
    pramodbutte
    @pramodbutte
    hello, I just joined this room, I have a quick question. is there a way to intgrate "openseadragon" viewer in python app? (client to view images)
    Ian Gilman
    @iangilman
    @pramodbutte Sure... There shouldn't be any problem using OpenSeadragon in a Python app. I assume you mean you're using Python for your server side code and you'll be using OpenSeadragon on the client side? Should work fine; let me know if you are running into any trouble.
    pramodbutte
    @pramodbutte
    oh the other way around. I would like to do the viasualization in the python app I built using pyqt5 and pyqtgraph
    I have large histopathology slide images which I am displaying using pyqtgraph imageitem. youtube link but pyqtgraph is unable to display full zoomed image. hence I am exploring using openseadragon. Any input is welcomed. thanks
    Ian Gilman
    @iangilman
    @pramodbutte I see! Well, can you host web content in a Python app? If so, you could run OpenSeadragon on a web surface.
    Otherwise, if the code all has to be Python, I suppose you would have to reimplement the OpenSeadragon functionality.
    pramodbutte
    @pramodbutte
    @iangilman thanks, I understand, I am looking to see if I can use Qwebview to run openseadragon in the widget. thanks your input. Do you know if there is a good reference for how the openseadragon fetches? I have never done javascript else I would open that code and try to understand.
    Ian Gilman
    @iangilman
    @pramodbutte I'm not sure what you mean... It fetches things the way webpages fetch things...
    It gets the DZI via XHR and the image tiles by loading them as img elements.
    You give it the URL you want and it loads stuff from that.
    pramodbutte
    @pramodbutte
    @iangilman of I meant what is the algorithm with respect to levels and zoom factor and such. Fetching can be done in python if you know what to fetch. Is there an algorithm which determines which tiles to fetch and how to stitch them?
    Ian Gilman
    @iangilman
    Definitely!
    Are you using DZI or something else?
    That's assuming you know what level and tile you want. Determining level and tile is done by OSD based on where you've zoomed/panned to, and that's a lot more complicated (but it's driven by the file format).
    pramodbutte
    @pramodbutte
    Yes converting from .svs to dzi
    @iangilman Great thanks appreciated!
    I will look through the code
    Ian Gilman
    @iangilman
    Cool. Good luck!
    darkmich
    @darkmich
    Quick question - I'm looking to have a set of images in SequenceMode, but be able to replace them. Without SequenceMode, I can call viewer.addTiledImage({ tileSource...}) to change the image being shown. Is there something equivalent when using tileSources? I tried calling addTimedImage() with the index set to just replace individual images; while that called up the new image immediately, it didn't replace it in the image collection. Sorry if this is obvious and I just can't find the answer!
    darkmich
    @darkmich
    Slight progress - if I create an array of the tiles to open and call viewer.open, it works; however, there are no thumbnail images in the collection bar.
    darkmich
    @darkmich
    Never mind! It was a problem with the virtual slides I was using as an image source.
    Ian Gilman
    @iangilman
    @darkmich Glad you got it sorted out :)
    dyptek
    @dyptek
    Hi Ian, what can I use to convert BigTiff images to zooming images? Zoomify doesn't support BigTiff format. And for some reason Deep Zoom Composer is not opening in my PC.
    Ian Gilman
    @iangilman
    @dyptek I recommend VIPS. It supports BigTIFF and DZI, and it's pretty great. Here's the info on converting to DZI: https://libvips.github.io/libvips/API/current/Making-image-pyramids.md.html