일부 추상 렌더링의 경우 Photoshop의 폴라 필터에 대해 연구할 가치가 있는 것들이 많이 있습니다...
[Abstract] 일부 추상적 렌더링의 경우 Photoshop의 극좌표 필터에 대해 연구할 가치가 있는 것들이 많이 있습니다...
외국 사이트에서 포토샵 필터를 두 가지로 분류하는 것을 보았는데, 하나는 원본 이미지를 파괴하지 않는 필터이고, 다른 하나는 원본 이미지를 파괴하는 필터입니다. 파괴 필터는 대부분 왜곡 필터이며, 그 중 극좌표는 상당히 파괴적입니다.
극좌표의 파괴성 때문에 많은 사람들은 이 필터가 이미지 및 사진 처리에 대한 실질적인 적용이 거의 없다고 생각하지만, 일부 추상적인 이미지에 사용된다면 이 필터에 대해 여전히 연구할 가치가 있다고 생각합니다. 당신도 이 기사를 읽고 나면 영감을 받게 될 것입니다.
1. 극좌표 변형에 대한 지각적 이해
먼저 극좌표가 이미지에 어떤 종류의 왜곡을 주는지 살펴보겠습니다. 그림과 같이
이 그림 세트는 극좌표 변환 전후의 사각형, 원 및 컬러 블록의 이미지입니다.
직각좌표에서 극좌표로의 변화: 위쪽 가장자리가 오목해지고 아래쪽 가장자리와 양쪽이 위로 올라가는 과정으로 생각할 수 있습니다.
극좌표에서 직각좌표로의 변화: 하단 모서리가 위로 오목해지고 상단 모서리와 양쪽이 아래로 향하는 과정으로 볼 수 있습니다.
여기서 말하는 '프로세스'는 기억을 깊게 하기 위한 것일 뿐입니다. 사실 이 올라가고 내려가는 과정은 존재하지 않고, 좌표를 통해 직접적으로 매핑됩니다.
1. 직교 좌표 -> 극좌표
원본 이미지의 수직선은 극좌표 변환 후에 방사형 선이 됩니다.
원본 영상의 수평선은 극좌표 변환 후 동심원이 됩니다.
물론, 가로 세로로 그리면 거미줄이 됩니다.
변형 후 각 컬러 블록의 위치를 관찰해 보세요. 원본 이미지의 상단은 원의 중심으로 줄어들고, 하단의 빨간색은 캔버스의 내접원이 됩니다. 왼쪽과 오른쪽의 두 개의 파란색 컬러 블록을 위쪽으로 뒤집어 최종적으로 부채꼴 모양으로 합쳐지고 원래의 두 측면이 위쪽에서 겹쳐집니다.
각 색상 패치가 변경되기 전후의 위치를 기억하면 극좌표 필터에 대한 이해가 깊어질 뿐만 아니라 적어도 방사형 선, 동심원 및 부채꼴 모양을 그리는 방법을 배웠습니다.
2. 극좌표 -> 직교좌표
원본 사진의 세로선과 가로선(좌표축 제외)이 사진에서는 포물선/쌍곡선으로 변환됩니다(아직 구체적인 선 모양은 파악하지 못했지만 쌍곡선인 것을 선호합니다).
변환 후 좌표축은 5개의 수직 분할선이 되며, 그 중 1, 3, 5는 원래 수직 축이고 2, 4는 원래 수평 축입니다.
컬러 블록의 변화에 대해서는 위치와 진폭에 주의하시기 바랍니다.
Btw: 서문에서 극좌표는 이미지에 파괴적이라고 말했습니다. 사실 극좌표 필터에도 어느 정도 감소가 있습니다. 이는 결국 좌표계 간의 매핑입니다. 정방향으로 변환된 그래프에 대해 역변환을 수행하면 원본 이미지의 일부 정보를 여전히 복원할 수 있습니다. 그러나 극좌표는 일대일 대응이 아니기 때문에 그래프 가장자리의 정보를 복구할 수 없습니다. 더 많은 대체 응용 프로그램에서는 극좌표의 축소성을 사용하여 이미지를 암호화할 수도 있습니다.
2. 극좌표 필터 적용
극좌표 필터는 주로 원을 그리거나, 원을 기반으로 이미지를 그릴 때 사용합니다. 우리는 종종 벡터 소프트웨어로 그리는 반복적이고 규칙적인 그래픽을 봅니다. 실제로 일부 그래픽은 극좌표 필터를 사용하여 완성될 수 있으며 때로는 벡터 소프트웨어를 사용하는 것보다 더 좋고 더 많은 변경이 가능합니다.
2.1 방사선 생성, 1부 참조.
2.2 동심원 제작에 대해서는 1부를 참조하십시오.
2.3 팬형, 링형, 레인보우, 1부 참조.
2.4 나선형
벡터 소프트웨어에서 나선을 그리는 것은 매우 간단하며 일부 소프트웨어에는 자체 나선 도구가 있습니다. 그러나 PS의 경우 나선을 그리는 데 특별히 적합한 도구나 공식이 없습니다. 왜곡 필터에는 나선형 효과를 낼 수 있는 Twirl 필터가 있지만 제어하기가 쉽지 않습니다.
저는 동심원을 그리면서 영감을 얻었고 극좌표 필터를 사용하여 등거리 또는 개방형 나선을 그릴 수 있다는 사실을 발견했으며 단계는 몇 단계만으로 비교적 간단합니다.
먼저 직사각형의 빈 파일(400*20)을 만들고 대각선을 그립니다(두꺼운 대각선인 경우 대각선에 주의하여 캔버스의 다른 두 상단 모서리에 대각선을 그립니다. 다음 단계에서 채워야 합니다. 일반 연결) 패턴을 정의합니다. 그림과 같이
새 파일(400*400)을 만들고 방금 정의한 패턴으로 채웁니다. 그림과 같이
극좌표 필터 적용, 직교좌표 - 극좌표
조명 필터를 적용합니다.
그런 다음 구형화 필터와 기타 수정 사항을 적용하면 작업이 완료됩니다.
위 그림은 등거리 나선을 그리는 경우입니다. 부등한 나선을 그리는 경우 각 사선의 간격과 기울기를 변경해야 합니다.
참고: 사진의 오른쪽 하단에 검은색 흔적이 나타납니다. 이 검은색 선은 원본 사진의 하단 가장자리에 있는 검은색 점에서 매핑됩니다. 극좌표 이후 원본 이미지의 아래쪽 가장자리는 새 이미지의 외부 테두리(정사각형 캔버스 또는 직사각형 캔버스인 경우 타원)가 새겨진 원과 원 외부의 모든 공백으로 매핑됩니다. 이 검은 선을 피하고 싶다면 원본 이미지의 밑줄이 배경색이라는 점만 참고하세요. 실제로 이 줄에는 고유한 특수 용도도 있습니다. 자세한 내용은 아래 예를 참조하세요.
ImageReady를 사용하면 그려진 나선형을 Gif 애니메이션으로 만들 수도 있습니다.
2.5 세로 대각선과 격자의 극좌표 변화
원칙은 모두 동일합니다. 하나를 이해하면 다른 것도 이해하게 됩니다. 그러나 수직선을 채우는 경우 새 캔버스 크기는 원래 정의된 패턴 크기의 정수 배수여야 합니다. 그렇지 않으면 원본 이미지의 왼쪽과 오른쪽이 극좌표 필터 이후 잘 혼합되지 않습니다.
아래 두 그림은 방금 소개한 검은색 선을 사용하여 내접원 외부에 방사형 선을 만듭니다.
복잡한 그래픽의 진화
2.6 그리드의 극좌표 변화
다른 필터와 결합된 간단한 그리드를 사용하면 예상치 못한 다양한 효과를 만들 수 있습니다. 그림 그룹 6 ~ 그룹 9와 같습니다. 제작방법을 간략하게 소개하기 위해 그룹 8을 예로 들어보겠습니다.
먼저 그리드를 그려보겠습니다. 그리드를 그리는 데 어떤 방법을 사용하는지 궁금합니다. 채우기나 다른 방법에 대해서는 나중에 논의하겠습니다. 타일을 사용하여 그리드를 그립니다.
극좌표 필터(극좌표 -> 직각좌표)를 사용하여 수직으로 뒤집습니다.
다시 극좌표 필터를 사용하여(극좌표 -> 직교좌표) 수직으로 뒤집습니다.
그런 다음 극좌표 필터를 사용합니다(직사각 좌표->극좌표).
조명 필터, 곡선 사용
완성된 효과는 다음과 같습니다.
그룹 7과 그룹 9의 준비 방법은 그룹 8의 준비 방법과 유사하지만 몇 가지 추가 단계가 혼합되어 있습니다.
기타 애플리케이션
2.7 CD 만들기
CD를 만드는 방법은 여러 가지가 있지만, 이건 물론 극좌표를 이용해서 그린 것인데 잘 된 것 같지는 않습니다.
2.8 방사선 사진 텍스트
그룹 11, 온라인에 대한 많은 튜토리얼이 있으므로 자세히 설명하지 않겠습니다.
이 경우 극좌표를 직교좌표로 변환하면 어떻게 될까요? 대부분의 경우 이미지의 일부만 극좌표로 변환하면 되는데, 직접 "직선 만들기 -> 직교좌표를 극좌표로 변환"하면 원본 이미지도 왜곡됩니다. 따라서 "극좌표를 직교좌표로 -> 직선을 만든다 -> 직교좌표를 극좌표로"의 방법을 따르면 원본 이미지를 그대로 유지할 수 있습니다.
이를 통해 극좌표 필터의 다음과 같은 특성을 요약할 수 있습니다.
- 직교 좌표에서 극좌표로의 변환은 효과를 생성하는 데 사용되는 반면, 극좌표에서 직교 좌표로의 변환은 전자의 부작용을 상쇄하는 데 사용됩니다.
- 수평선은 원으로, 수직선은 방사형 선으로, 대각선은 나선으로 변환됩니다.
- 원본 이미지의 위쪽은 원의 중심에 해당하고, 아래쪽은 원의 중심 바깥쪽에 해당합니다.
바람과 결합하다
윈드 필터는 직선, 특히 페이딩 방사형 효과가 있는 직선을 만드는 데 훌륭한 도구입니다. 위의 "극좌표를 직교좌표로 변환 -> 직선 만들기 -> 직교좌표를 극좌표로 변환"이라는 이론에 따르면 바람을 사용하여 직선을 만들면 원하는 복사 효과를 얻을 수 있습니다.
2.9 극좌표 형태의 변화
이것은 제가 가장 좋아하는 것인데 우연히 생각해 낸 것입니다. 그룹 12.
구체적인 적용은 여기까지 하겠습니다. 마지막으로 이론에 대해 조금 이야기하고 극좌표 변환 필터의 작동 과정에 대해 이야기하겠습니다.
3. 극좌표 필터의 작동과정(직교좌표에서 극좌표로) 일반적으로 비트맵 이미지의 모든 점(픽셀)은 직사각형 좌표(x, y)로 표현될 수 있습니다. 마찬가지로 이 픽셀은 극좌표(r,a)로 표현될 수도 있습니다. 극좌표 필터의 작동과정은 직교좌표계를 기준으로 픽셀(x,y)을 극좌표 매핑(r,a)을 통해 처리한 후 직교좌표(x',y')로 표현하는 것이다.
직교좌표와 극좌표의 상호 변환식은 다음과 같습니다.
r = sqrt ( x * x + y * y )
a = arctg (y / x )
x = r * cos (a)
y = r * 죄 (a)
다음은 극성 필터의 작업을 시뮬레이션하는 의사 코드입니다. 이 코드는 제가 작성한 것이 아니며 이해만 했을 뿐입니다. 자세한 설명은 아래 링크를 참조하세요.
http://www.jasonwaltman.com/thesis/filter-pole.html
(해외 사이트입니다. 사이트 소유자는 C++를 사용하여 일부 PS 필터의 효과를 시뮬레이션하고 소스 코드와 소스 프로그램을 제공했습니다.)
원본 이미지의 모든 픽셀에 대해
{
// x와 y는 데카르트 좌표의 현재 픽셀 좌표입니다.
//이미지 중심점의 좌표는 x = 0, y = 0입니다.
// r과 a는 픽셀의 극좌표입니다. 각도 a는 라디안 단위입니다.
r = sqrt ( x * x + y * y );
a = atan2(y/x);
// R은 이미지의 최소 길이와 너비의 절반을 차지합니다.
R= 최소[이미지_너비, 이미지_높이]/2
//새 x와 y는 극좌표 필터 변환 후 데카르트 좌표계의 픽셀의 새 좌표입니다. 이번 변환의 목적, 특히 R과 6.2832(2pi)의 선택은 변환된 이미지를 원래 캔버스 크기로 제한하는 것이라고 생각합니다. 동시에 이 단계는 궁극적으로 이미지의 변형으로 이어집니다.
x = r * 이미지 높이 / R;
y = a * image_width / 6.2832;
필터픽셀.x = x;
filterpixel.y = y;
}
이것은 의사 코드의 일부일 뿐이며 실제 실행 과정은 더 복잡하므로 더 깊이 들어가면 주제를 심각하게 놓칠 수 있으므로 자세한 내용은 해당 링크를 참조하여 직접 확인하시기 바랍니다.
마지막으로 해당 웹사이트의 인용문으로 마무리하겠습니다.
"창의적으로 사용된다면 그 효과는 단지 참신함 이상의 가치가 있습니다."
이 글을 읽고 영감을 얻으시길 바랍니다. 말은 마음만큼 좋지 않고, 마음은 행동만큼 좋지 않습니다.