139 VBox startBox(colors);
141 boxes.append(startBox);
145 int biggestBoxPopulation=-1;
147 for(
int i=0; i<boxes.size(); i++) {
148 if(boxes.at(i).population()>biggestBoxPopulation &&
149 boxes.at(i).axisSize(boxes.at(i).biggestAxis())>=3) {
151 biggestBoxPopulation=boxes.at(i).population();
155 if(biggestBox==-1 || boxes[biggestBox].population()<=3)
157 VBox newBox = boxes[biggestBox].divide();
158 boxes.append(newBox);
164 int biggestBoxAxisSize=-1;
166 for(
int i=0; i<boxes.size(); i++) {
167 if(boxes.at(i).axisSize(boxes.at(i).biggestAxis())>biggestBoxAxisSize &&
168 boxes.at(i).axisSize(boxes.at(i).biggestAxis())>=3) {
170 biggestBoxAxisSize=boxes.at(i).axisSize(boxes.at(i).biggestAxis());
174 if(biggestBox==-1 || boxes[biggestBox].population()<=3)
176 VBox newBox = boxes[biggestBox].divide();
177 boxes.append(newBox);
182 for(
int i=0; i<boxes.size(); i++) {
183 if(boxes.at(i).population()>=1) {
184 colorList.append(
KoColor(QColor(boxes.at(i).mean()), colorSpace));
197 int pixelCount = height*width;
198 if(pixelCount> (1<<16)) {
199 qreal factor = sqrt((1<<16)/(qreal) pixelCount);
200 tmpImage =
m_imageData.scaledToWidth(width*factor);
205 width=tmpImage.width();
206 height=tmpImage.height();
208 QSet<QRgb> colorList;
210 for (
int i=0; i<width; i++) {
211 for (
int j=0; j<height; j++) {
212 colorList.insert(tmpImage.pixel(i, j)|qRgba(0,0,0,255));
215 return QList<QRgb>(colorList.begin(), colorList.end());