Showing posts with label Qt. Show all posts
Showing posts with label Qt. Show all posts

31 July 2017

How to build waifu2x command-line version on osx

UPDATE 23/10/2017: recent changes seem to be incompatible with clang. I have updated the steps below to check out the last commit that is known as working.
Waifu2x is a popular image converter backed by neural-network models, typically used to upscale images from anime. The various web versions are easy to use but typically don't allow for batch-processing, because it's a relatively intensive operation. However, there is a command-line version that is fairly easy to compile on Windows and Linux. OSX support was notably absent... until now.
These are the steps required to get it working on Mac:
  1. brew tap science && brew install opencv3
    (if you don't have Homebrew, go install it now - it's wonderful)
  2. git clone https://github.com/DeadSix27/waifu2x-converter-cpp.git
  3. cd waifu2x-converter-cpp
  4. git checkout d69313040b0784662465fb1d2eca81a2b1ebccb2
  5. cmake -DOVERRIDE_OPENCV=1 -DOPENCV_PREFIX=/usr/local/Cellar/opencv3/<your version here> . (remember the dot at the end!)
  6. make -j4
At this point, you have the executable waifu2x-converter-cpp in the directory; you can make install if you really want to (I prefer to keep custom stuff in my home dir). To test it's working, the following command should return info on your system:

./waifu2x-converter-cpp --list-processor

If you need some images to test, here you can get quite a few stills from the gorgeous 5 Centimeters Per Second. Note: you might have to rename the folder "models_rgb" into "models" before converting.

BONUS: Qt GUI

If you hate the command-line, there is a simple QT wrapper. To compile it you will need Qt-Creator and Qt installed and configured. This used to be very complicated, but both items have now been packaged for Homebrew so it's all awesomely simple (well, compared to what it was, at least). Note that you still have to do the steps above - the wrapper needs the waifu2x executable to be already compiled.

Install and configure Qt and Qt-Creator

  1. brew install qt && brew cask install qt-creator
  2. Launch Qt Creator from Launchpad, then go to Qt Creator -> Preferences (Command + ,)
  3. Select Build & Run, then the Qt Versions tab
  4. Click on Add... and select “Macintosh HD”
  5. Press Command + Shift + . to show hidden directories
  6. select /usr/local/Cellar/qt5/<your version>/bin/qmake then OK and OK again to close the Preferences window
  7. Reopen Preferences -> Build & Run, select the Kits tab and click Add
  8. Set the following options:
    • Name to something like "Qt CLang Desktop" 
    • Both Compiler options to Clang X86 64bit
    • Qt Version to the version you just created
    • Click on Make Default then OK to close Preferences.

Compile waifu2x-converter-qt

  1. git clone https://github.com/toyg/waifu2x-converter-qt.git (the original repo looks abandoned, so I forked it and tweaked it a bit)
  2. cd waifu-converter-qt && open waifu2x-converter-qt.pro (this should open Qt Creator; if it doesn't, launch it manually and File -> Open Project -> select the .pro file).
  3. Select Build -> Run (or Command + R). The resulting .app bundle should now be in a folder called build-waifu2x-converter-qt-<something something>, just beside your main project folder.
When you first launch the GUI, you should probably go to Preferences and set the path to your waifu2x-converter-cpp executable.

09 February 2010

Mobile applications for Nokia phones with... javascript ?!?

A few days ago the lovely folks at NSManchester, an Apple user group, gave a chance to "the enemy" (i.e. Nokia) to present their technology stack and business strategies for attracting developers.

The two presenter were a bit underwhelming (understandable after they went through the usual, hellish experience with British railway services), and there was little talk of my beloved Maemo, but it's hard to dismiss the technology stack they have chosen to go forward. Key element seems to be the QT library they acquired last year, which I know and love through the original Python bindings. It's powerful and as cross-platform as it can be, with a lot of mindshare in the Linux and Windows communities; this said, it's still C++, and it's hard to get excited about C++ these days. Also, the runtime will gradually appear on new and recent phones but probably won't make it to older ones.

The second development platform they are pushing, however, was more of a surprise to me. Apparently, you can use JavaScript to write applications for recent smartphones (S60 5th ed. -- N97 and 5800 -- and S60 3rd ed. FP2 -- e.g. E72, N85, N96 etc). You can access GPS coordinates, contacts and calendar items, as well as having complete freedom to design the UI with standard HTML and CSS. You don't need to sign the resulting packages, the barrier to entry is lowered dramatically. This is potentially a game-changer, and I don't know why Nokia are not shouting it from the rooftops. Early adopters include Netflix, which uses a basic JavaScript interface to stream their Flash content (!) -- so yes, you can use flash as well. My head simply went "boom"; I must look into this stuff.

One other thing I noticed was the presenters' style, typically European: self-deprecation and brutal honesty about things that work and ones that don't. It was refreshing, after weeks of Yanks propaganda from Google and Apple pushing their new gadgets as "fantastic", "amazing", "revolutionary" etc etc etc...

10 April 2009

How to get precompiled documentation for Qt4

Memo to self: if you ever need to download the Qt4 documentation on Windows, instead of scraping the official site, just download the qt4-doc package for Debian, open it with 7-Zip and extract the .qch files to use with QtAssistant (which also gives you indexing etc).

22 February 2008

kdepyuic essential patch

This little patch for kdepyuic just made my day.

kdepyuic is a small utility to produce python files from .ui files produced by QtDesigner, ready to be used in PyKDE applications; it basically adds KDE-specific stuff to the standard pyuic utility (a .ui-to-.py compiler included in the generic PyQt distribution).
This i18n patch (courtesy of Stephan Hermann) solves a few headaches with importing the correct i18n function to translate stuff, and I'd strongly recommend everyone writing KDE apps in python to apply it.

(... and this means that a kdelicious release is on its way...)

28 January 2008

Ouch

First, I upgrade the ATI drivers on my linux laptop and they break 3D. Then Nokia buys Trolltech, the company behind Qt and KDE. Is this God's way to tell me to switch to a GNOME-based distribution? Sigh.