후속: &quot Sorting"; 색계열 의해 특수성

[원래 질문] (https://stackoverflow.com/questions/180/function-for-creating-color-wheels)

주어진 경우 최대 N 먼 색계열 (일부는 연관됨 거리 메트릭은) 등 일부 정렬하려면 수 있는 방법을 올라와 그 첫 번째 M 도 가까이 되는 색계열 agent. 주문하십시오 합리적으로 최대 뚜렷한 설정합니까?

즉, 주어진 여러 가지 색상을 사용할 수 있는, 그래서 많은 색계열 오더할 내놓아야 할 수 있을 것이라는 점을 모두 합리적으로 as I 처음부터 시작하는 것을 알 수 있는 색상은 또한 매우 뚜렷한 (예를 들어, t # 39 레드 isn& 등으로 옆에, 붉은 blue).

그러나 최적이고 무작위) 은 분명 아니다.

  • 설명: 특히 일부 대형 및 시각적으로 구별되는 일련의 색계열 (말하도다 256 또는 1024년), 그 때 내가 원하는 것을 내가 사용하는 등 정렬하려면 얻을 수 있는 첫 번째, 말, 그 중 16 개는 비교적 시각적으로 구별되는 서브셋에 색계열. 이 목록은 1024년, 약, 내가 원하는 것 "이라며" 이는 avamer 수 있도록 개별 색상은 정렬하려면 시각적으로 더 멀리 떨어져 있는 이 list.* 그들이 오른길로

너, 이 경우 반드시 고려해야 할 것 같다고 지정값이 YUV 와 같은 색 공간을 사용하는 가시 범위, ve, 그들은 그 때 사용되는 YCbCr 또는 실습에서는. # 39 Everytime I& sRGB 보다 훨씬 더 좋은 성적을 내게 된다.

변환 될 수 있지만 실제로 고통을 주고 sRGB 할 수 있는 경우 대부분 작동합니까 너무 멀게 색상 및 보너스로 간단해진다는 알고리즘입니다 됩니다!

해설 (0)

N 먼 색계열 간주될 수 있는 일련의 잘 분산 점이 최대 3 차원 (색) 이다. 홀턴 e0100042.log 에서 생성되도록 수 있다면, 그 다음 모든 접두어입니다 (첫 번째 M 색계열) 도 잘 분산 방향점 구성되어 있습니다.

해설 (0)

또한 같은 날 저항을 할 수 있는 사운드를 함정이거나 경로 그래프 배치하십시오 최소한의 저항. 이 경우, 최대 저항 경로를 요구사항릴리스 반전합니다 생산하는 데 사용되는 처음부터 세트를 얻을 수도 있고, 최대 차이가 as you go) 가 가장 가까운 값을 끝 쪽으로 돌아가야 한다.

예를 들어, 한 가지 방법은 아마도 here& # 39 의 못하며창조된 그리웠댔지.

  1. 계산하십시오 거리 (ref [네 다른 게시물로의] (https://stackoverflow.com/questions/1313/followup-finding-an-accurate-distance-between-colors) 에서 각 색상에는 다른 모든 색계열
  2. 이 합계 거리를 나타내는 것일 수 있습니다 에 대한 각 색상에 대해 얼마나 떨어져 이 색상은 다른 모든 색계열 총
  3. 거리에 따라, 다운되는 오더할 목록

이렇게 시작하는 것 같다 깔의 바뀌엇어요 색상 즉 멀리 떨어진 후, 다른 모든 별색을 다운 색계열 끝날 때쯤 약간만이라도 나열하십시오 다른 색으로 좀 더 일반적으로.

편집: 내 첫 번째에 대한 회신을 판독값 게시물로의 공간 위의 설명은 맞지 않을 것이라는 정확히요 색계열 때문에 다른 색계열 아니하였으매 목록의 맨 아래에 있지만 크게 닫으십시오 let& # 39 의 말하도다 색상 중 하나 이상이 있는 경우, 어딘가 클러스터와의 색상에는 클러스터와의 약간만이라도 인근에 위치한 이 목록의 시작, 정보기술 (it) 는 일반적으로 약간만이라도 방정식입니다 멀리 떨어진 다른 모든 색계열 총. 만약 그 것이 합리적입니다.

해설 (0)

이 문제는 잘 알려져 있으며, 많은 호출됨 컬러 양자화 알고리즘: 팔진트리 (http://en.wikipedia.org/wiki/Color_quantization) 이 사람들을 그러니까말이야 구현됩니까 외곽진입 좋은 효과를 얻을 수 있습니다.

해설 (0)

그냥 이 후보가 될 수 있는 기반으로 색상을 수백년간 극대화됩니다 정렬하려면 최소 거리 인덱스 색계열.

색상을 사용하여 유클리드 거리:

public double colordistance(Color color0, Color color1) {
    int c0 = color0.getRGB();
    int c1 = color1.getRGB();
    return distance(((c0>>16)&0xFF), ((c0>>8)&0xFF), (c0&0xFF), ((c1>>16)&0xFF), ((c1>>8)&0xFF), (c1&0xFF));
}

public double distance(int r1, int g1, int b1, int r2, int g2, int b2) {
    int dr = (r1 - r2);
    int dg = (g1 - g2);
    int db = (b1 - b2);
    return Math.sqrt(dr * dr + dg * dg + db * db);
}

비록 운영까지도 아무것도 바꿀 수 있습니다. 그냥 요구사항뿐 색상 거리 눈길을 끌고 있다.

public void colordistancesort(Color[] candidateColors, Color[] indexColors) {
    double current;

    double distance[] = new double[candidateColors.length];
    for (int j = 0; j < candidateColors.length; j++) {
        distance[j] = -1;
        for (int k = 0; k < indexColors.length; k++) {
            current = colordistance(indexColors[k], candidateColors[j]);
            if ((distance[j] == -1) || (current < distance[j])) {
                distance[j] = current;
            }
        }
    }

    //just sorts.
    for (int j = 0; j < candidateColors.length; j++) {
        for (int k = j + 1; k < candidateColors.length; k++) {
            if (distance[j] > distance[k]) {
                double d = distance[k];
                distance[k] = distance[j];
                distance[j] = d;

                Color m = candidateColors[k];
                candidateColors[k] = candidateColors[j];
                candidateColors[j] = m;
            }
        }
    }
}
해설 (1)

39 질문에 올바르게 이해하는 I& 경우, m, M 프로파일링하려는 서브셋에 입수합니다 함께 가장 높은 곳도 거리 사이의 거리 함수 d 짓궂군요 색상, 주어진 일부.

바꾸어 말하자면, 무향 그래프는 크기가 큰 점을 고려할 때, 초기 집합이 N 줄무늬가 있는 모든 색깔의 연결되어 있는 모든 가장 긴 길을 찾으려는 방문 M 노드입니다.

문제를 해결하는 방법이 있지만, 나를 넘어 I& # 39 는 np-완료 그래프화합니다 m 두렵도 단순한 물리 시뮬레이션 실행하십시오 수 있습니다.

    • M * 임의 지점에서 발령합니다 란색이며 공간
  1. 각 점 사이의 거리를 계산하십시오
  2. 각 점에 대한 반응 계산하십시오 벡터를 이동시키십시오 떨어진 것으로 다른 모든 포인트 (사용하여 1 / (2 ^ 거리) 로 강도입니다 벡터)
  3. 이 각 점에 대한 반응 벡터 합
  4. 위치에 따라 각 점에 벡터를 업데이트하십시오 요약된다 반응
  5. 모든 (또는 그 이상의 것 같은 제외어 광도) 한 바인딩되지 위치좌표 아웃해야 constrain
  6. 2 단계에서 반복하십시오 방향점 안정 때까지
      • N) 를 통해 각 점에 대한 기본 집합을 가장 가까운 란색이며

39 의 it& 멀리 떨어진 작은 M 충분히 있을 수 있으나, 효율적인, 정보기술 (it) 근처에서 부여하느뇨 효율적인 최적의 결과를 얻을 수 있습니다.

거리 함수 () 는 보다 확고한 란색이며 경우 간단한 방법을 최적이고 서브셋 생성 할 수 있습니다.

해설 (1)
  1. 두 개의 열거합니다 시작. 처음에 캉디드라테코로스 들어 있는 다른 색상 및 스페인드콜로르, 기본적으로 비어 있음.
  2. 모든 색상 및 분리하십시오 스페인드콜로르 강조표시할 충스러웠으니 캉디드라테코로스 및 넣습니다. 이것은 첫 번째 컬러 및 적립율은 가장 일반적인 도왔으매 it& # 39 의 색상을 선택할 수 있는 곳이라는 자이브 응용 프로그램을 잘.
  3. 각 색상으로 캉디드라테코로스 계산하십시오 총 길이 있다. 이 액수는 총 거리는 거리의 캉디드라테코로 각 색상은 스페인드콜로르.
  4. 가장 많은 총 참조색 분리하십시오 캉디드라테코로스 항목으로부터의 거리 끝에 스페인드콜로르 추가합니다.
  5. 캉디드라테코로스 비어 있지 않은 경우, 돌아가서 3 단계.

이 탐욕 알고리즘 /dev/raw/raw200 제공하십시오 좋은 결과를 얻을 수 있습니다.

해설 (0)

Rgb 진수 형식으로 인되며 분할할 수 있도록 R, s R& 비교할 수 있는 # 39 와 같은 다른 색상, G, b

Html 같은 형식으로

XX XX XX
RR GG BB

00 00 00 = black
ff ff ff = white
ff 00 00 = red
00 ff 00 = green
00 00 ff = blue

그래서 사용자가 필요로 하는 것은 얼마나 가깝냐고 운영까지도 결정하는 유일한 색상 및 지정하십시오. 차이가 있는 것으로 간주되려면 적정 세그먼트만 다르다.

해설 (0)

Do you mean 색상을 선택할 수 있는 집합에서, 여기서 M, N, M 별색을 &lt 합니다. 예를 들어 n, M 은 M N best 색으로 표현한 공간?

예를 들어, 트루 컬러 (24 비트 색 공간) 를 더 줄일 수 있게 한 8 비트 매핑되었습니다 색 공간 (GIF?).

이 같은 알고리즘을 위한 몇 가지 양자화 (Adaptive 공간 구역] (http://www.imagemagick.org/www/quantize.html) 에서 사용되는 알고리즘입니다 앵거매직.

일반적으로 이러한 알고리즘을 don& # 39 의 색상을 선택, t 그냥 소스 공간을 사용하지만 기존 색상에는 만들어진 새로운 소스 색계열 가장 유사한 대상 공간입니다. 간단한 예를 들어, 원본 이미지의 경우 등 3 가지 색상 있는 두 개의 적색 (또는 서로 다른 강도입니다 등으로 농도 등) 와 3 은 파랑입니다 줄여야 할 수 있으며, 두 대상 이미지가 별색을 빨간색으로 즉 함정이거나 평균, 원래 두 개의 적색 + 푸른 색을 원본 이미지를.

If you need something else didn& # 39, 그럼 내가 이해하지 질문이요:)

해설 (0)