## Pixel Conversion

by: Maple 18

Here is an example of manipulating an Array of pixels. I chose the x-rite ColorChecker as a model so there would be published results to check my work. A number of details about color spaces have become clear through this exercise. The color adaptation process was modeled by converting betweenXYZ and LMS. Different black points may be selected depending on how close to zero illuminance one would accept as a good model.

I look forward to extending this work to verify and improve the color calibration of my photography. Also some experimentation with demosaicing should be possible.

 Initialization

x-rite Colorchecker xyY Matrix

=

=

 Convert xyY to XYZ

=

 XYZ D50 to XYZ D65

=

Convert XYZ to Lab (D50 or D65 White Point)

 Reference White Point for D50  =  =  = Lab Conversion Constants; Reference White Point for D65  =  =  =

=

Convert XYZ to aRGB (XYZ D50 or D65 to aRGB D65)

XYZ Scaling for aRGB Ymax,Ymin (Ref. Adobe RGB (1998) Color Image Encoding Section 4.3.2.2 and 4.3.8)

 White Point (Luminance=160Cd/m^2) D65 Black Point (Luminance=0.5557Cd/m^2) D65 White Point (Luminance=160Cd/m^2) D50 Black Point (Luminance=0.5557Cd/m^2) D50 =  =  = =  =  =

aRGB Expansion for 8bits

Combine Steps

Note: The aRGB values published for ColorChecker assume a black point of 0cd/m^2.

=

=

 Convert XYZ to ProPhoto RGB (D50)

=

 Convert XYZ to sRGB (XYZ D50 or D65 to sRGB D65)

Note: The sRGB values published for ColorChecker assume a black point of 0cd/m^2.

=

=

Corrections to the original version of theis document;
 Make the scaling for a nonzero black point the same for all RGB color spaces.
 Clip negative RGB values to zero.
 Remove the redundant Array container from matrix multiplications.
Use map in place of the \$ to apply a function to each element of an Array.

## Write string to file...

Hi,

I would like to a string of characters to a file. For example,

***

str:="hello world";
WriteFile[APPEND]("D:\\output3.txt", str);

***

It doesn't work. I did not get output3.txt :(  How should I do, to write a string of characters, such as "hello world" to a file?

Thank you

## How to draw isometric figures and orthographic fig...

Good morning.

I am working on engineering drawing project. I request your kind suggestions for

the above cited subject.

With thanks & Regards

M.Anand

Assistant Professor in Mathematics

SR International Institute of Technology,

## Possible to run many sheets on a machine?...

Say I have

a.mpl

b.mpl

c.mpl

each of them can be ran seperately. While I am running a single file, it looks like that the machine is not "using" too much computation power. I wonder if it's possible to run multiple at the same time ?

My CPU is i7 940X, with 4 dual core processors, so it has 8 threads.

I know that the GUI can run multiple worksheets seperately, but if in one of the worksheet, i click "run all" (!!! botton),  I will have to run each line separtely by clicking one at a time.

Is there a better way to do this? What's the best way to do this? I hope to somehow 'maximize' the full use of my CPU (without changing the code).

casper

## Clean memory/restart inside a loop...

Hi,

I have a loop code, such as

****

i_max:=10;

for i from 1 to i_max do
blah blah blah

end do;

****

I would like to clean memory, something like restart suppose to do, after each cycle. Restart could only work at top level. How should I do to clean memory after each cycle?

## Running Maple from a linux server...

Hi,

I am connected to the linux version of Maple (xmaple) via putty and Xing (for GUI).

While the "big" code is running, I sometimes I got these messages,

But Maple (xmaple GUI) keeps running. It looks like it does not have an effect.

Should I be concerned?

## writeto a file with a time and date stamp...

At the moment, I am using

>writeto("Result1.txt");

> printf(StringTools[FormatTime]("%c\n"));
Thu Jul 31 14:28:08 2014

# lots of things here

# lots of things here

# lots of things here

>writeto(terminal);

To write a time and date stamp into my result1.txt file.

I understand that I can't write : into file names, but is there a way to writeto file using a more informative file name with date and time, such as,

Result_Thu Jul 31 14-28-08 2014.txt

Is that something can be easily formatted?

casper

## determine intersection of two curves?...

Hi Maple friends.

Is there a Maple function to determine the intersection of two curves? For simple curves where the intersection is clear, I can plot them and use probeinfo to get the approximate intersection values.

But for more complex curves, where the scales are large, or the intersection point is not clear, it is difficult.

ie. intersection of y=x-3 and y=x^2-2*x-1

or intersection of y=x+1 and y=(x+1)/(x-1)

## copy and paste in Maple GUI (the > sign)...

Say sometimes, I need to copy and paste results from Maple output, either in 1D or 2D or self formatted (see this).

Sometimes, it works fine, with just a single ">" sign, like this

> v1:=[
eta[p2] = 0.260 ,
eta[p3] = 0.113 ,
eta[p4] = -0.013 ,
eta[p5] = 0.215 ,
eta[p6] = -0.189 ,
eta[phi2] = 0.020 ,
.......ect
]:

But sometimes, it looks like this:

> v1:=[
> eta[p2] = 0.260 ,
> eta[p3] = 0.113 ,
> eta[p4] = -0.013 ,
> eta[p5] = 0.215 ,
> eta[p6] = -0.189 ,
> eta[phi2] = 0.020 ,
> .......ect
> ]:

Below is a screenshot from what I get when I copy the above synatex into Maple :

Personally, when I type in multiple synatex, I tend to use shift+enter, to avoid the use of many ">"s.

It does not have any effect in practice, but is there a way to improve this? I dont like seeing many many ">"s.

## Rounding numbers...

restart:

a:=0.0000000000000000000000213123123;

evalf[3](a);

I think the above is the same as if I were to change the precision tab, to display 3 decimals.

Is there a way to ask Maple to display it as  (printf(  "%3.3f",a);)

0.000

But I want this as a standard Maple ouput.

and I am not just working with a single scalar, I need something that works for a Vector, Matrix, and perhaps, in general.

Thanks,

casper

## How do align in printf ?...

v1:=[
eta[p2] = 0.260 ,
eta[p3] = 0.113 ,
eta[p4] = -0.013 ,
eta[p5] = 0.215 ,
eta[p6] = -0.189 ,
eta[phi2] = 0.020 ,
eta[phi3] = 0.063 ,
eta[phi4] = -0.014 ,
eta[phi5] = -0.414 ,
eta[phi6] = 0.067 ,
mu[p] = 0.466 ,
mu[phi] = -0.169 ,
tau[p3] = -0.000 ,
tau[p4] = 0.000 ,
w[1] = 0.023 ,
w[2] = -0.447 ,
w[3] = -0.110 ,
w[4] = 0.035 ,
w[5] = 0.445
]:

for i to numelems(v1) do
printf("%a = %3.3f , \n",lhs(v1[i]),rhs(v1[i]));
end do:

This runs and returns:

eta[p2] = 0.260 ,
eta[p3] = 0.113 ,
eta[p4] = -0.013 ,
eta[p5] = 0.215 ,
eta[p6] = -0.189 ,
eta[phi2] = 0.020 ,
eta[phi3] = 0.063 ,
eta[phi4] = -0.014 ,
eta[phi5] = -0.414 ,
eta[phi6] = 0.067 ,
mu[p] = 0.466 ,
mu[phi] = -0.169 ,
tau[p3] = 0.000 ,
tau[p4] = 0.000 ,
w[1] = 0.023 ,
w[2] = -0.447 ,
w[3] = -0.110 ,
w[4] = 0.035 ,
w[5] = 0.445 ,

Is there a way to align the qual signs? also to align the decials like this:

eta[p2]   =  0.260 ,
eta[p3]   =  0.113 ,
eta[p4]   = -0.013 ,
eta[p5]   =  0.215 ,
eta[p6]   = -0.189 ,
eta[phi2] =  0.020 ,
eta[phi3] =  0.063 ,
eta[phi4] = -0.014 ,
eta[phi5] = -0.414 ,
eta[phi6] =  0.067 ,
mu[p]     =  0.466 ,
mu[phi]   = -0.169 ,
tau[p3]   =   0.000 ,
tau[p4]   =   0.000 ,
w[1]       =   0.023 ,
w[2]       = -0.447 ,
w[3]       = -0.110 ,
w[4]       =  0.035 ,
w[5]       =  0.445 ,

For the negative numbers, I prefer to have 1 space of indentation.

Thanks,

casper

## Maple 18 error "too many levels of recursion" when...

We deploy Maple to our users using Microsoft App-V; We have been using App-V 4  to successfully deploy Maple for some time. When I package Maple 18 for App-V 5 deployment, when a user launches Maple there is an error "too many levels of recursion".

After clicking OK to clear the error, choosing any of the options on the start screen, e.g. signal processing, simply launches a help screen with the message "no matches found" instead of launching a new worksheet.

App-V is our standard method of deploying applications, and has always worked OK in the past. Do you have any recommendations for packaging Maple 18 via App-V?

Thanks.

## Substitute variable...

Hi,

Excuse me, I have a following expression

x^2+x+2;

I want to replace all x as x+1

x:=x+1 does not work.

Is there any simple solution?

Thank you very much in advance

## i need a help for solve ...

hi,

here are  equations like this

sol := [abs(r)^2+abs(t)^2 = 1, r*conjugate(t)+t*conjugate(r), abs(r) = abs(t)]

when i solve this equations using command solve，the result  is none. and i used r=x+I*y,t=u+I*v in the equations,

sol:=[u^2+v^2+x^2+y^2 = 1, 2*u*x+2*v*y, sqrt(x^2+y^2) = sqrt(u^2+v^2)]

i still can't get a result.why,can you help me.

thanks.

## return a list of indices that match a condition...

a:=Vector([2,3,4,5]);

select[flatten](x->x>=3,a);

This returns a Vector that satisfies the above condition. What's the most efficient way to get the indices of those entries?

For example, a list l:=[2,3,4] that correspond to the a[l] entries that satisfies the above condition.

l:=[2,3,4];

a[l]; # gives the same answer

Thanks,

casper

 First 79 80 81 82 83 84 85 Page 81 of 87
﻿