The RGB Universe

Three images bounded to the respective spaces: Colour, Chromaticity, and Hue.

One image bounded to three respective spaces: Colour, Chromaticity, and Hue.

The Colour-Space: RGB
Everyone is familiar with this, it is the additive model for colours that uses the primaries: red, green & blue. A 3D Model where each unique colour sits at position (x: r, y: g, z: b).

The Chromaticity-Space: RCGCBC
Some people will be familiar with this, it is RGB without luminance, the brightness is removed in a way that doesn’t effect the hue or saturation. It is referred to as rg-Chromaticity because it’s construction from RGB means only two elements are needed to represent all the chromaticity values:

Conversion to Conversion from (kind of*)
R_C= \frac{R}{R+G+B}
G_C= \frac{G}{R+G+B}
B_C= \frac{B}{R+G+B}
 R = \frac{R_C G}{G_C}
G = G
B = \frac{(1 - R_C - G_C) G}{G_C}

It will always be that R_C + G_C + B_C = 1 so by discarding the blue component we can have unique chromaticities as (x: r’, y: g’). This means that rg-Chromaticity is a 2D-Model and when converting to it from RGB we lose the luminance. So it is impossible to convert back. *An in-between for this is the colour-space rgG where the G component preserves luminance in the image.

The Hue-Space: RHGHBH
No one uses this, I just thought it would be fun to apply the same as above and extract the saturation from RCGCBC. Like RCGCBC it is a 2D Model, this seems strange because it is only representing one attribute –hue– but it is because the elements themselves have a ternary relationship (how much red, how much green, how much blue) and so to extrapolate one you must know the other two.

Conversion to 3-tuple Hue Normalise to 2D
M = \text{Max}(R,G,B)
m = \text{Min}(R,G,B)
\delta = 255/(M-m)
R_h = (R-m) \delta
G_h = (G-m) \delta
B_h = (B-m) \delta
R_H = \frac{R_h}{R_h + G_h + B_h}
G_H = \frac{G_h}{R_h + G_h + B_h}
B_H = \frac{B_h}{R_h + G_h + B_h}

Measuring Hue Distance
The HSL colour-space records hue as a single element, H, making measuring distance as easy as \Delta H = \sqrt{{H_a}^2 - {H_b}^2} where as in rg-Hue we have two elements so \Delta H = \sqrt{({R''_a}^2 - {R''_b}^2) + ({G''_a}^2 - {G''_b}^2)} where R'' = R_H and G'' = G_H for readability. What’s interesting here is it works almost the same. Though it should be noted that on a line only two distances are equidistant to zero at one time where as in rg-Hue, on a 2D plane, there are many equidistant points around circles.

Below are images of a RGB testcard where each pixel’s hue has been measured against a colour palette (60° Rainbow) and coloured with the closest match. The rg-Hue measure has a notable consistency to it and shows more red on the right hand side than HSL, but also between the yellow and red there is a tiny slither of purple. I believe this is from the equal distance hues and the nature of looking through a list for the lowest value when there are multiple lowest values:

Hue Distance (HSL) Hue Distance (RHGHBH)
HSL Measure rg-Hue Measure

Islam: The Religion of… Logic? (3/3)

Not often described as the Religion of Logic, Islam had a golden age spanning from the 8th-12th century (CE). This is the last in a three-part post on logic and rational thought in Islam. The previous post looked at the Mu’tazilites, who believed in reason and rational thought above all else. Here we will look at applications and types of logic in Islamic law making.

Islamic Jurisprudence (fiqh)
In the modern day there are many schools of fiqh (madhhab) which can be seen in this world map. The four accepted Sunni madhhabs are Hanafi, Shafi’i, Maliki and Hanbali. The Shia’s have the Ja’fari, Isma’ili and Zaidi madhhabs. Mu’tazilism, being a system of theological interpretations, doesn’t exactly have a madhhab. This gives a rather confusing situation where you can have “Sunni Mu’tazalites” and “Shia Mu’tazalites”. This would be Mu’tazilites roughly following, for example, a Hanafi or Zaidi madhhab. The movement was predominantly of Sunnis, notably the founder Wasil ibn Ata (a good friend of Zayd ibn Ali) and scholar Abd al-Jabbar, but there were also Shi’ite Mu’tazilah like Ayatollah Hilli and the poet Ibn al-Rumi. The introduction of Mu’tazilism on the kalam of Judaism even brought about “Jewish Mu’tazilites” such as David ibn Merwan al-Mukkamas. Though again we see another area of Islam wherein Mu’tazilites are shown to be very different from standard Islamic views.

The Sources of God’s Law (Sharia)
Fiqh is the process used for creating, understanding and applying religious laws, for the main part madhhabs can be seen to follow a process of stages involving different religious sources: The main ones being the Qur’an, Sunnah, Ijma, Qiyas (Sunni) and ‘aql (Shia). The madhhabs give different weight to different sources. Hanbali, for example, give credence to the first two stages and ignore the last ones.

1 2 3 4
Sunni Qur’an Sunnah Ijma Qiyas
Shia Qur’an Sunnah Ijma ‘Aql
Mutazilah ‘Aql Qur’an Sunnah Qiyas*

ijma – meaning “consensus” either by religious authorities (Sunni), the Imam (Shia) or the Muslim community (Ibadi). Sunni’s often use the Companions of Mohammad (Sahabah) as the religious authorities, looking for their consensus in Hadiths. Using ijma is invalid for Mu’tazilah because of a rational scepticism towards peoples’ ability to make mistakes. For this same reason Hadiths are treated with caution and discarded if they contradict the Quran. Both the Shia and Mu’tazilah held critical views about the first generation of Muslims, with Ibadi also viewing Uthman and Ali as less than righteous.

Qiyas – meaning “deductive analogy” in reference to what is written in The Qur’an and Hadiths with what is being assessed. Because most Mu’tazilites follow Hanafi teachings Qiyas were often accepted, though not always. Notably Ibrahim an-Nazzam who denied Qiyas, Ijma and even Sunnah as sources for Sharia stating that only The Qur’an and ‘aql were acceptable.

‘Aql – meaning “reason” is intellect in terms of the rational faculty of the soul, deep understanding of God’s words, Imams have ‘aql. The term is slightly different when seen from Mu’tazilah doctrine as much closer to rational logic than religious understanding. Where Qiyas are analogical reason, ‘aql is pure logical reason.

A Note on Ibadi’ism
I found two completely contradictory Ibadi views on Qiyas and ijma, the first was Ibadi madhhab rejects the 3rd and 4th stages as a form of innovation (bid‘ah). This follows from the generally conservative nature of Ibadi Islam, but then in a state-published book on Ibadi’ism from Oman it says they follow 5 stages of fiqh: Qur’an, Sunnah, ijma, Qiyas & Induction (istidlal). The use of ijma can be seen to follow directly from the democratic nature of the Ibadi caliph. So I’m not sure which is the case as they both make sense for different reasons.

Sources: Initially Wikipedia then al-islam.org (Shia), livingislam.org (Sunni) then videos of scholars, academics and documentaries on Youtube (Sunni & Shia & Ibadi). The information was sporadic and sometimes contradictory so please feel free to correct me if I made mistakes.

Islam: The Religion of… Logic? (2/3)

Often described as the Religion of Violence, Islam had a golden age spanning from the 8th-12th century (CE). The previous post brushed over the Islamic Golden Age and Kalam. This post introduces a prominent theological school that lived and died in that time.

The Mu’ tazila

Logical-Koran-2

Paradoxical statements in the Qur’an had to be logically qualified.

Their theology was and is incredibly different to mainstream Islam for many reasons, the big ones being belief in Free Will, Atomism, rationalising discrepancies in the Qur’an and that the Qur’an itself was created. Now although the Qur’an is a primary source for knowing God’s laws – pure analytical reason gets the final say! Listed below are the five fundamental beliefs in Mu’tazilism, although monotheism and divine justice are standard for virtually all forms of Islam the interpretation makes them very important. The First Principle, as stated in the Mu’tazila text Kitab Al-Usul Al-Khamsa, is that good and evil can be known solely through human reason (without revelation) and that it is a Muslim’s duty to try and know God in this way. This principle, the autonomy of intellect, underpins the five fundamentals below:

  • MonotheismTawhid,  better expressed as the oneness of God, has had slightly different meanings over the history of Islam. Usually the Qur’an is seen to be an essence of God (His word) and thus co-eternal with Him. Mu’tazilites strict interpretation of tawhid says the Qur’an cannot both be part of Him and apart from Him, so the Qur’an cannot be eternal and thus is created. This became one of the most contested positions in Islamic thought. A view shared by the Ibadi Muslims of present day Oman.
  • Divine JusticeAl-‘Adl, there are many divine attributes and although virtually all schools of thought believe God to have justice as one – the strict analysis of it by Mu’tazilites brings about a controversial view. In answer to the Problem of Evil, like in Zoroastrianism, they respond by introducing Free Will – something completely opposed to the determinism of mainstream Islam. This is because if God is divinely just then he cannot create someone, command them to do evil then punish them for doing so.
  • The Promise and the Threat – At-wa’d wa al-wa’id, this is divine retribution. For this reason one must try to know God through rationality in order not to inadvertently disobey Him (and burn in Hell).
  • The Intermediate PositionAl-Manzilah Bayna al-Manzilatayn, when a Muslim sins they do not become a disbeliever (kafir) but neither do they stay a true believer (mu’min). If they die in this state they will be judged by God separately from a mu’min and a kafir. This view sits between the Kharijite position that sinning is disbelief (a view shared by modern day Islamic Extremists) and the Murjite position that a sinner is still a believer until Judgement Day where God will decide.
  • Commanding Good, Prohibiting EvilAl-‘amr bil ma’ruf wa al-nahy ‘an al-munkar, an obligation for all mu’min. This is the maxim that led to political intervention in the Abbasid Caliphate.

Mu’tazila: Sunni, Shia, Ibadi?
There are quite a few sects/schools/movements in Islam, this infograph shows the types that are around today. It doesn’t mention Mu’tazila and in my reading I have seen them referred to as Sunni sub-set, their own sect and even not Muslims at all. I would say there is enough difference in views to call them an independent sect. If we look at views on who can be a caliph we see that Sunni say the caliph must be from the tribe of Mohammed, Shia say the caliph must be from the family of Ali then the Ibadi say it can be anyone of strong faith. The Ibadi view was one adopted from their predecessor the Kharijites, the Mu’tazila share the Ibadi and Kharijite view on who can be caliph. But their rational dispute with the texts and onus on self-reasoning is contrary to conservative Ibadi/Kharijite views. Although the lines do blur as we will see in the next post, Mu’tazilites were quite the contrarians of their time – and even of our time.

Nobody Expects the Islamic Inquisition! (Minha)
The fifth doctrine, commanding good and prohibiting evil, invoked political action during the Abbasid Caliphate. Pro-Mu’tazila ulama (religious officials), including the caliphs al-Ma’mun and al-Mu’tasim, began interrogating scholars and ulama who did not believe in the Jahmite and Mu’tazilte view of Quranic Createdness. Imprisonment, punishment and even death would fall on those who did not concede. There was a growing ‘traditionalist’ re-serge in Sunni Islam at the time which promoted much the opposite and the fact that Mu’tazila shared views in-line with Zoroastrians and Shia muslims did not win them any favours with the populous. In the field of kalam two more systematic schools emerged in response, these were the Ashi’arites and the Maturidis. The latter was a hardline reaction that advocated Quranic literalism and threw out rational applications. The Ashi’arite school was the middle ground and found much support.

The 10th caliph of the Abbasid reign, Al-Mutawakkil, reversed the order of Minha and with that the ulama freely became less accepting of Mu’tazilites. The general community were already rather against them and Mu’tazilites quickly lost any power or influence they once held. Even after the Mu’tazilites had all gone – their practices still continued, mainly with the Zaidi Shias of Yemen, but also Ismaili Shias, Karaite Jews and certain Sufi schools had by this time all adopted different aspects of Mu’tazila doctrine. The Ashi’arite school of theology which advocated a lighter version of rationalism became moderately accepted in the Sunni mainstream.

The next post is on interpreting sharia (law).

Sources: Initially Wikipedia then mutazilah.com, asharis.comal-islam.orglivingislam.org, scholars on Youtube (Sunni & Shia, including Wahhabist Feiz Mohammad), academics and documentaries online. The information was sporadic and sometimes contradictory so I also bought the book Defenders of Reason in Islam which is a detailed analysis of the movement’s initial serge all the way up to it’s revival in our modern times.

Islam: The Religion of… Logic? (1/3)

Often described as the Religion of Peace, Islam had a golden age spanning from the 8th-12th century (CE). This is the first in a three-part post on logic and rational thought in Islam. Each post will look at a different relationship analytical thought has had with the Arab-speaking populous.

Liberalisation of Science and Philosophy
During the Golden Age great advances were made, importantly the House of Wisdom was set up in Baghdad. From here the first ever international scientific venture in history began; Wherein, large volumes of written knowledge from Persian, Greek, Latin, European and Indian origin were translated to Arabic. The great Arabic polymaths such as Al-Kindi, who had the earliest writings on encryption by frequency analysis and wrote On the Use of the Indian Numerals, worked from the House of Wisdom. The biggest star of the Golden Age was ibn Sina (Avicenna) who made so many contributions – the biggest being The Canon of Medicine which, written in 1025, was used as a medical standard from England to China for about 600 years. Like many thinkers were at the time, Avicenna was also a logician and he disliked Aristotelian logic. For example when looking at ‘if p, then q’ he believed it too presumptuous to assert an such a strong relation between p and q. His response, ‘q while p’, is the beginnings of Temporal Logic. Below are some examples of his Temporalis (While Logic) :

  • Whenever the Sun is out, then it is day
  • It is never the case that if the Sun is out, then it is night
  • It is never the case that either the Sun is out or it is day
  • If, whenever the Sun is out, it is day, then either the Sun is out, or it is not day
Considered the Founder of Optics, and with it Experimental Physics, ibn Al-Haythem appears on the Iraqi dinar. He also divided the first rigorous attempt at testing - making him the Founder of the Scientific Method.

Ibn Al-Haythem (Alhazen), a Persian Islamic thinker whom worked from the House of Wisdom, is considered the Founder of Optics and with it Experimental Physics. He also devised the first rigorous attempt at testing – making him the Founder of the Scientific Method.

Dialectical Exploration of Theology (kalam)
Baghdad may have had the House but Basra had the Circle, the circle of Al-Hasan Al-Basri (Hasan) to be exact. In this gathering of minds instead of scientific discussion there was theological questions emerging. Questions asked were to do with the nature of God, His attributes, good and evil, how to understand the Qur’an. Not all Muslims supported the idea of kalam but those who did would relish the chance to debate other religions – especially ahl al-kitab (People of the Book). A practitioner of kalam is called a mutakallim, and this word was used for non-Muslims aswell. From these endeavours there later developed Jewish Kalam, schools of thought in this time influenced each other a great deal. There was even athiest mutakallimun such as Ibn al-Rawandi. The first Muslims that practiced early on were the Qaadariyah (believers in Free Will) who were mockingly compared to Zoroastrians and the Jahmites (believers in Quranic Createdness and non-literal interpretations of the Qur’an). These early terms were for people holding certain singular dogmas. Later, as kalam evolved, three distinct schools of thought emerged (the Mu’tazila, Ash’ari and Maturidi). The next post looks specifically at the Mu’tazila.

Accuracy of Generated Fractals

Note: I refer to the Mandelbrot set in general as the M-set for short.

When I was writing the post on Rough Mandelbrot Sets I tried out some variations on the rough set. One variation was to measure the generated M-set against a previously calculated master M-set of high precision (100000 iterations of z = z^2 + C). In the image below the master M-set is in white and the generated M-sets are in green (increasing in accuracy):

50 Against MasterHere instead of approximating with tiles I measured the accuracy of the generated sets against the master set by pixel count. Where P = \{ \text{set of all pixels} \} the ratio of P_{master} / P_{generated} produced something that threw me, the generated sets made sudden but periodic jumps in accuracy:

Graph OneLooking at the data I saw the jumps were, very roughly, at multiples of 256. The size of the image being generated was 256 by 256 pixels so I changed it to N by N for N = {120, 360, 680} and the increment was still every ~256. So I’m not really sure why, it might be obvious, if you know tell me in the comments!

I am reminded of the images generated from Fractal Binary and other Complex Bases where large geometric entities can be represented on a plane by iteration through a number system. I’d really like to know what the Mandelbrot Number System is…

Below is a table of the jumps and their iteration index:

Iterations Accuracy measure
255
256
0.241929
0.397073
510
511
0.395135
0.510806
765
766
0.510157
0.579283
1020
1021
0.578861
0.644919
1275
1276
0.644919
0.679819
1530
1531
0.679696
0.718911

Editing Ultraviolet Photography

For people who do multispectral photography (infrared, visible, ultraviolet, etc) sometimes it can be tricky to achieve what you want in a traditional photo editor. That is why I am developing software to cater specifically for multispectral image processing. The software is called WavelengthPro. Below is a quick video, four images and explanations for the results.

The Resulting Images:
These four images are made from only this visible light image and this ultraviolet image. They were both taken with the same camera, Nikon D70 (hot mirror removed), using an IR-UV cut filter and the Baader-U filter. No extra editing was done.

UV-DualProcessed UV-Luminance
Dual Process Luminance Map

One often met problem in ultraviolet photography is getting the right white-balance on your camera – if you can’t achieve it you end up with rather purple pictures. In WavelengthPro there is a tool called Dual Processing where you create the green channel out of the red and blue channels which rids your image of the purpley hue.

The Luminance Map is actually a lightness map, made in HSL colour-space, it is the hue and saturation of the visible light image with the lightness of the UV image. As you can see the specular effect on the leaves completely contrasts the mat flowers. There is a good example of useful application for this method in the post Luminance Mapping: UV and Thermal.

RGBUU GBU
5to3 Map (RGBUrUb) 3to3 Map (GBU)

There are only 3 channels (ignoring alpha) for an image to be encoded into but in WavelengthPro that is attempted to be extended by mapping N channels to the 3 (RGB) output channels. A classic ultraviolet editing method is to make a GBU image, like the image on the right. The image on the left has five channels equally distributed across the three RGB channels. An array of different maps can be seen in an older post called Testing Infrared Software. If you want to download and try out the software (it’s still in alpha stage – don’t expect everything to work) then the link below will have the latest release version.

WavelengthPro Flickr Group

Rough Mandelbrot Sets

I’ve been reading up on Zdzisław Pawlak’s Rough Set Theory recently and wanted to play with them. They are used to address vagueness in data so fractals seem like a good subject.

Super Quick Intro to Rough Sets:
A rough set is a tuple (ordered pair) of sets R(S) = \langle R_*, R^* \rangle which is used to model some target set S. The set R_* has every element definitely in set S and set R^* has every element that is possibly in set S . It’s roughness can be measured by the accuracy function \alpha(S) = \frac{|R_*|}{|R^*|} . So when |R_*| = |R^*| then the set is known as crisp (not vague) with an accuracy of 1.

A more formal example can be found on the wiki page but we’ll move on to the Mandelbrot example because it is visually intuitive:

The tiles are 36x36 pixels, the Mandelbrot set is marked in yellow. The green and white tiles are possibly i the Mandelbrot set, but the white tiles are also definitely in the Mandelbrot set.

The tiles are 36×36 pixels, the Mandelbrot set is marked in yellow. The green and white tiles are possibly in the Mandelbrot set, but the white tiles are also definitely in it.

Here the target set S contains all the pixels inside the Mandelbrot set, but we are going to construct this set in terms of tiles. Let T_1, T_2, T_3,\dots , T_n be the tile sets that contain the pixels. R^* is the set of all tiles T_x where the set T_x contains at least one pixel that is inside the Mandelbrot set, R_* is the set of all tiles T_x that contain only Mandelbrot pixels. So in the above example there are 28 tiles possibly in the set including the 7 tiles definitely in the set. Giving R(S) an accuracy of 0.25.

Tile sizes: 90, 72, 60, 45, 40, 36, 30, 24, 20, 18, 15, 12, 10, 9, 8, 6, 5, 4.

Tile width: 90, 72, 60, 45, 40, 36, 30, 24, 20, 18, 15, 12, 10, 9, 8, 6, 5, 4. There seems to be a lack of symmetry but it’s probably from computational precision loss.

Obviously the smaller the tiles the better the approximation of the set. Here the largest tiles (90×90 pixels) are so big that there are no tiles definitely inside the target set and 10 tiles possibly in the set, making the accuracy 0. On the other hand, the 4×4 tiles give us |R_*| = 1211 and |R^*| = 1506 making a much nicer:

\alpha(S) = 0.8 \overline{04116865869853917662682602921646746347941567065073}

For much more useful applications of Rough Sets see this extensive paper by Pawlak covering the short history of Rough Sets, comparing them to Fuzzy Sets and showing uses in data analysis and Artificial Intelligence.