MCPcopy Create free account
hub / github.com/creatale/node-dv / pixConvertRGBToHSV

Function pixConvertRGBToHSV

deps/leptonica/src/colorspace.c:133–176  ·  view source on GitHub ↗

---------------------------------------------------------------------------* * Colorspace conversion between RGB and HSB * *---------------------------------------------------------------------------*/ ! * \brief pixConvertRGBToHSV() * * \param[in] pixd can be NULL; if not NULL, must == pixs * \param[in] pixs * \return pixd always * * * Note

Source from the content-addressed store, hash-verified

131 * </pre>
132 */
133PIX *
134pixConvertRGBToHSV(PIX *pixd,
135 PIX *pixs)
136{
137l_int32 w, h, d, wpl, i, j, rval, gval, bval, hval, sval, vval;
138l_uint32 *line, *data;
139PIXCMAP *cmap;
140
141 PROCNAME("pixConvertRGBToHSV");
142
143 if (!pixs)
144 return (PIX *)ERROR_PTR("pixs not defined", procName, pixd);
145 if (pixd && pixd != pixs)
146 return (PIX *)ERROR_PTR("pixd defined and not inplace", procName, pixd);
147
148 d = pixGetDepth(pixs);
149 cmap = pixGetColormap(pixs);
150 if (!cmap && d != 32)
151 return (PIX *)ERROR_PTR("not cmapped or rgb", procName, pixd);
152
153 if (!pixd)
154 pixd = pixCopy(NULL, pixs);
155
156 cmap = pixGetColormap(pixd);
157 if (cmap) { /* just convert the colormap */
158 pixcmapConvertRGBToHSV(cmap);
159 return pixd;
160 }
161
162 /* Convert RGB image */
163 pixGetDimensions(pixd, &w, &h, NULL);
164 wpl = pixGetWpl(pixd);
165 data = pixGetData(pixd);
166 for (i = 0; i < h; i++) {
167 line = data + i * wpl;
168 for (j = 0; j < w; j++) {
169 extractRGBValues(line[j], &rval, &gval, &bval);
170 convertRGBToHSV(rval, gval, bval, &hval, &sval, &vval);
171 line[j] = (hval << 24) | (sval << 16) | (vval << 8);
172 }
173 }
174
175 return pixd;
176}
177
178
179/*!

Callers 4

NAN_METHODFunction · 0.85
pixMakeRangeMaskHSFunction · 0.85
pixMakeRangeMaskHVFunction · 0.85
pixMakeRangeMaskSVFunction · 0.85

Calls 9

pixGetDepthFunction · 0.85
pixGetColormapFunction · 0.85
pixCopyFunction · 0.85
pixcmapConvertRGBToHSVFunction · 0.85
pixGetDimensionsFunction · 0.85
pixGetWplFunction · 0.85
pixGetDataFunction · 0.85
extractRGBValuesFunction · 0.85
convertRGBToHSVFunction · 0.85

Tested by

no test coverage detected