Color profiles conversion - cmyk

I have a project on color profile conversion in C++, where the idea is to use CIELAB as transition between RGB and all others (CMY; CMYK; HSV; HSL;...).But I have one big big problem. I have searched everywhere and I cannot find any formula or descrition how could I convert CIELAB to others(CMY; CMYK; HSV; HSL; ...) only I got is what I found here : http://www.easyrgb.com/index.php?X=MATH&H=14#text14 . Can someone please help me with formula or with an idea how to get to them? Thank you so so much.
Regards,
magic :)

Color conversion with mathematical formulas yields very poor results with no serious application. Color systems are far too complex to capture them in simple, closed mathematical formulas let alone in linear formulas.
Good results can only be achived by using color profile files. And the conversion basically invovles interpolation between samples stored in these files.
Have a look at Little CMS. It probably does everything you need. Or if your software will run on Windows, you can use the built-in Windows Color System to do the conversion.

Related

Is it possible to invert pyplot figures to the corresponding code?

Is there any tool that can receive an input of a pyplot figure (in .png format), and output its corresponding data and code? I'm working on an earlier project which I want to change the figure but I can't find the original pyplot code to generate the figures.
Really appreciate if someone can help!
Unfortunately, there is no way to do this. You can however extract the data using a tool like webplotdigitizer - I think that's probably your best bet.

Debugger tool in GAMS

I want to find my mistake in GAMS model. I don't have any errors , but my model doesn't work well
Is there any debugging tools in GAMS ?( like debugger tools in other software, e.g MATLAB)
Best
Unfortunately, I have not come across any.
If you have no errors in GAMS, it rather points to a modelling problem rather than a GAMS one. GAMS is like any other programming/modelling software, what you put in is what you get out. However, there are some commands and some intuitive ways you can find out the problem with your model:
One common way is by using the display and $stop commands. If you have loops within your GAMS code, it is best to track the progress of the loop by displaying some key variables either to your .lst file or using put utility (also a nice tool). I use the put utility, and write the code to display key variables at each point of my code to identify where things may have gone wrong.
The $stop command terminates your GAMS code at the line in which it is written.
Hope this helps.

What format does PrintDocument.getData() return?

I'm looking into what it takes to develop a PrintService on android. After reading some on-line docs I'm not quite clear on the format of data returned by PrintDocument.getData() method. I'd expect that in the case of PrintDocumentInfo.CONTENT_TYPE_PHOTO the returned data will be an image (I'm not quite sure about this). However, what can I expect when content type is CONTENT_TYPE_DOCUMENT?
There is a sample of PrintDocumentInfo that uses a builder to build a pdf file. Is this always the case? That is, is content of CONTENT_TYPE_DOCUMENT always in pdf format?
I'd appreciate any suggestions and/or pointers to relevant on-line docs.
Thanks.
It is always PDF for CONTENT_TYPE_DOCUMENT.

OpenCV for iOS sudoku grabber

I'm following this tutorial
http://aishack.in/tutorials/sudoku-grabber-with-opencv-detection/
But it's not fot the iOS.
some methods described there can be used, but the floodfill (used as cvFloodFill) is no longer an int. it's a void
I'm trying to get the size of the biggest blob, It's pretty much the part i'm missing. this for loops and the floodfill.
is there a good way of doing it?
I thought about the cvBlob library, but I just can't get it to compile for mac.. tried many ways....
EDIT: After arkiaz's answer, moved to a new question:
openCV cvContourArea
Thanks!
Instead of floodfill you can use findcontour to find biggest blob.
Do as follows:
1) Apply adaptive threshold, some erosion and dilation etc ( as mentioned in aishack)
2) Find contours using findcontours
3) Use contourarea to find area of each contour
5) Select the one with max. area. That will be the sudoku box. Then continue as given in aishack.in
For me, this method worked faster than floodfill method

Hexadecimal numpad

The project I am currently working on requires a lot of hexadecimal numbers to be entered into the code.
I once saw a pic of an old keyboard with a hexadecimal numpad (has A-F letters on it also) replacing the normal numpad. Anyone know where I can get one of these?
IPv6 Buddy -keypad should work well for hexadecimal input.
http://www.ipv6buddy.com/
If you can get your hands on one of the retired space shuttles, they have one!
I have an old Heathkit learning toy with a hex numpad because the only way to program it was to assemble code by hand (it came with a 6800 manual and some notepads) into the online monitor. This was actually fun!
Mine is missing the 'D' button however.
Great idea with the programmable keypad. I think i am going to pick up one of these: DX1 input system. Works for any reconfiguring I might want to do.
Is this the one you're talking about?
funky http://www.cpmuseum.com/Exhibits/Apple%20Lane/7603/7603-0005/images/000%20Front%20View.jpg
While this has a lot of "gee whiz" appeal, I have to say:
You have two hands. Use them. A-F are all reachable with the left hand on a standard keyboard while your right hand is on the num-pad. Instead of putting muscle-memory time into some arcane Hex-pad, you'll be learning to touch-type with your left hand, which has application outside your current project.
Better yet, come up with a smarter way of getting the hex codes into your code. Write a script that extracts them from your data-source and into your code as symbolic variables... or whatever.
EDIT
Ok, I'll give you the benefit of the doubt. Lets assume you're working on a hardware project and need to provide a specialized interface for your user. Maybe a programmable keypad would fit the bill?
Not sure of the specifics right now, but I'm pretty sure you can easily write a keyboard remapper. You could remap the QWASDF keys to ABCDEF in order to type them more quickly. That way you could use 2 hands to type. Or if you are in control of the program they are being typed into, you could just translate the keys in code on the fly. You also might want to try out the Microsoft Keyboard Layout Creator