Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • Users
  • Groups
  • Search
  • Get Qt Extensions
  • Unsolved
Collapse
Brand Logo
  1. Home
  2. Qt Development
  3. General and Desktop
  4. Looking for image processing library
Forum Updated to NodeBB v4.3 + New Features

Looking for image processing library

Scheduled Pinned Locked Moved General and Desktop
18 Posts 6 Posters 10.8k Views 1 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • C Offline
    C Offline
    cincirin
    wrote on last edited by
    #8

    Well, we have all what you need in our image processing library, but as I said in previous post, many of these filters are adapted for medical images, and it works only for grayscale images 8 and 16 bits per channel. Again, contact us if you want more details about our library ( many I had written so far :-) )

    As for other proposed solution, that with Photoshop filters, which is the impediment to you ? I think you can find many free filters over the internet with what you need. And with our host sdk (in the near future we'll have Mac version) you'll be able to run these filters directly in your application without the need for AdobePhotoshop installed.

    Regarding IIPL, I know it involves little image processing knowledge ...

    1 Reply Last reply
    0
    • G Offline
      G Offline
      goetz
      wrote on last edited by
      #9

      We use "GraphicksMagick":http://www.graphicsmagick.org in our project, it's a more stable "ImageMagick":http://www.imagemagick.org/ fork. Most of the taks you mentioned should be doable with both of them, I did not check the list.

      GM/IM has a nice C++ interface and it plays quite well with Qt.

      http://www.catb.org/~esr/faqs/smart-questions.html

      1 Reply Last reply
      0
      • C Offline
        C Offline
        cincirin
        wrote on last edited by
        #10

        [quote author="Volker" date="1317333158"]We use "GraphicksMagick":http://www.graphicsmagick.org in our project, it's a more stable "ImageMagick":http://www.imagemagick.org/ fork. Most of the taks you mentioned should be doable with both of them, I did not check the list.
        GM/IM has a nice C++ interface and it plays quite well with Qt.[/quote]

        All this is true, but as I said in previous post, GM/IM always use 32 bits (or 64 for 16 bits per channel) alignment "PixelPacket":http://www.graphicsmagick.org/Magick++/PixelPacket.html. So, for a RGB image you (or GM/IM) need to convert in internal format, then filtering, then you must convert back to your 24 bits image. For real-time processing for example, these extra steps are not so good.

        1 Reply Last reply
        0
        • C Offline
          C Offline
          cincirin
          wrote on last edited by
          #11

          btw ... "Manipulate An Image":http://www.graphicsmagick.org/Magick++/Image.html#manipulate-an-image is a list of filters supported by the GM/IM.

          1 Reply Last reply
          0
          • G Offline
            G Offline
            goetz
            wrote on last edited by
            #12

            @cincirin:
            Every graphics library converts an image into an internal representation of pixels. You plain cannot operate on a jpeg directly, as - by the nature of compression - there are no single pixels in it. And every image format utilizes its own packaging of the pixel data. In order to be of general use, the lib must convert the pixels into an internal representation which is independent of the original format.

            So you have this drawback with every lib you use. And for the sake of speed I'd bet a penny that every of those libs tries hard to align pixels on word boundaries in order to utilize machine optimization.

            Image manipulation is almost never a cheap operation.

            http://www.catb.org/~esr/faqs/smart-questions.html

            1 Reply Last reply
            0
            • C Offline
              C Offline
              cincirin
              wrote on last edited by
              #13

              @Volker, you are right when it comes to image format.
              But you don't process compressed pixels of jpeg's or whatever internal pixel representation of every image format. You must process always uncompressed pixels of every image format, which are in most cases non 32/64 bits per pixel.

              1 Reply Last reply
              0
              • G Offline
                G Offline
                goetz
                wrote on last edited by
                #14

                If you do not align on 32 or 64 bits, you cannot utilize low level machine optimization. This will lead to a much bigger speed penalty than everything else. It's for a reason that every now and then developers put otherwise unnecessary padding data into objects to force a proper alignment.

                http://www.catb.org/~esr/faqs/smart-questions.html

                1 Reply Last reply
                0
                • C Offline
                  C Offline
                  cincirin
                  wrote on last edited by
                  #15

                  Ok, you can align every RGB image on 32/64 bits per pixels boundary. But, what sens have to convert 24 bits per pixel to 32 bits per pixel ? Quite a lot of extra memory for large images.

                  1 Reply Last reply
                  0
                  • D Offline
                    D Offline
                    dangelog
                    wrote on last edited by
                    #16

                    Not having to do shifts/masks to get a pixel value and gaining the ability of using SIMD (or possibly GPGPU) on those images. At least, every scanline should be 32bit aligned!

                    Software Engineer
                    KDAB (UK) Ltd., a KDAB Group company

                    1 Reply Last reply
                    0
                    • C Offline
                      C Offline
                      cincirin
                      wrote on last edited by
                      #17

                      [quote author="peppe" date="1317393979"]At least, every scanline should be 32bit aligned![/quote]
                      Correct !.

                      But what I wanted to say is that GM/IM always convert internally pixels packet representation on 32/64 bits per pixels. That's all :-)

                      1 Reply Last reply
                      0
                      • G Offline
                        G Offline
                        goetz
                        wrote on last edited by
                        #18

                        I believe the IM/GM guys and the other graphics library folks do know what they are doing. And in doubt, the surely are of more wisdom in that topic than we all together.

                        This discussion is becoming too academic for my taste and I'm out now. Happy bit squeezing to everyone who wants to save some three bytes on his 8 GB workstation...

                        http://www.catb.org/~esr/faqs/smart-questions.html

                        1 Reply Last reply
                        0

                        • Login

                        • Login or register to search.
                        • First post
                          Last post
                        0
                        • Categories
                        • Recent
                        • Tags
                        • Popular
                        • Users
                        • Groups
                        • Search
                        • Get Qt Extensions
                        • Unsolved