[ITmedia PC USER] アンカー、最大8台のネットワークカメラを一元管理できるネットワークビデオレコーダー

· · 来源:answer资讯

提供 11 英寸与 13 英寸两种尺寸;

2026-03-04 16:00:00

A crystal快连下载安装对此有专业解读

sRGB↔XYZ conversionBy Michał ‘mina86’ NazarewiczUpdated on 21st of March 2021Share on BlueskyIn an earlier post, I’ve shown how to calculate an RGB↔XYZ conversion matrix. It’s only natural to follow up with a code for converting between sRGB and XYZ colour spaces. While the matrix is a significant portion of the algorithm, there is one more step necessary: gamma correction.What is gamma correction?Human perception of light’s brightness approximates a power function of its intensity. This can be expressed as \(P = S^\alpha\) where \(P\) is the perceived brightness and \(S\) is linear intensity. \(\alpha\) has been experimentally measured to be less than one which means that people are more sensitive to changes to dark colours rather than to bright ones.Based on that observation, colour space’s encoding can be made more efficient by using higher precision when encoding dark colours and lower when encoding bright ones. This is akin to precision of floating-point numbers scaling with value’s magnitude. In RGB systems, the role of precision scaling is done by gamma correction. When colour is captured (for example from a digital camera) it goes through gamma compression which spaces dark colours apart and packs lighter colours more densely. When displaying an image, the opposite happens and encoded value goes through gamma expansion.1.00.90.80.70.60.50.40.30.20.10.0EncodedIntensityMany RGB systems use a simple \(S = E^\gamma\) expansion formula, where \(E\) is the encoded (or non-linear) value. With decoding \(\gamma\) approximating \(1/\alpha\), equal steps in encoding space correspond roughly to equal steps in perceived brightness. Image on the right demonstrates this by comparing two colour gradients. The first one has been generated by increasing encoded value in equal steps and the second one has been created by doing the same to light intensity. The former includes many dark colours while the latter contains a sudden jump in brightness from black to the next colour.sRGB uses slightly more complicated formula stitching together two functions: $$ \begin{align} E &= \begin{cases} 12.92 × S & \text{if } S ≤ S_0 \\ 1.055 × S^{1/2.4} - 0.055 & \text{otherwise} \end{cases} \\[.5em] S &= \begin{cases} {E \over 12.92} & \text{if } E ≤ E_0 \\ \left({E + 0.055 \over 1.055}\right)^{2.4} & \text{otherwise} \end{cases} \\[.5em] S_0 &= 0.00313066844250060782371 \\ E_0 &= 12.92 × S_0 \\ &= 0.04044823627710785308233 \end{align} $$The formulæ assume values are normalised to [0, 1] range. This is not always how they are expressed so a scaling step might be necessary.sRGB encodingMost common sRGB encoding uses eight bits per channel which introduces a scaling step: \(E_8 = ⌊E × 255⌉\). In an actual implementation, to increase efficiency and accuracy of gamma operations, it’s best to fuse the multiplication into aforementioned formulæ. With that arguably obvious optimisation, the equations become: $$ \begin{align} E_8 &= \begin{cases} ⌊3294.6 × S⌉ & \text{if } S ≤ S_0 \\ ⌊269.025 × S^{1/2.4} - 14.025⌉ & \text{otherwise} \end{cases} \\[.5em] S &= \begin{cases} {E_8 \over 3294.6} & \text{if } E_8 ≤ 10 \\ \left({E_8 + 14.025 \over 269.025}\right)^{2.4} & \text{otherwise} \end{cases} \\[.5em] S_0 &= 0.00313066844250060782371 \\ \end{align} $$This isn’t the only way to represent colours of course. For example, 10-bit colour depth changes the scaling factor to 1024; 16-bit high colour uses five bits for red and blue channels while five or six for green producing different scaling factors for different primaries; and HDTV caps the range to [16, 235]. Needless to say, correct formulæ need to be chosen based on the standard in question.The implementationAnd that’s it. Encoding, gamma correction and the conversion matrix are all the necessary pieces to get the conversion implemented. Like before, Rust programmers can take advantage of the srgb crate which implemented full conversion. However, to keep things interesting, in addition, here’s the conversion code written in TypeScript:type Tripple = [number, number, number];

Global news & analysis,推荐阅读爱思助手获取更多信息

Perplexity

2023年4月,阶跃星辰成立,印奇为其发起者之一,但当时因旷视科技陷入IPO泥潭无法抽身。早在2019年,旷视就冲刺港股但无奈折戟,转战科创板五年无果,尤其是上交所于2021年9月已经通过,并提交注册的情况下,旷视此后便没有任何融资消息,上市梦也最终泡汤。。关于这个话题,同城约会提供了深入分析

人各有命,动物亦然。名为阿基米德的小白鼠,从实验室里逃出,会算数学题,却不幸沾染上了酒瘾;原本备受宠爱的母猫,诞下六只小猫,被杜太白命名为“富贵、荣华、吉祥、如意、招财、进宝”,它们见证了杜太白的“专制与奴役之路”,自己也最终沦为街头的流浪猫;不堪凌辱跳井自尽的大黑猪,竟在泰山之巅变成了点化杜太白的飞天凤凰,正是这只大黑猪,对杜太白接连发出天问,留下了“活扣”之谜……