이 번역 페이지는 최신 내용을 담고 있지 않습니다. 최신 내용을 영문으로 보려면 여기를 클릭하십시오.
transform
데이터저장소 변환
구문
설명
은 변환 함수 dsnew
= transform(ds1,ds2,...,dsN
,@fcn
)fcn
을 사용하여 하나 이상의 입력 데이터저장소를 변환하고 변환된 데이터저장소 dsnew
를 반환합니다. fcn
은 transform
함수 호출 시 모든 입력 데이터저장소 앞이나 뒤에 위치할 수 있습니다.
는 변환 함수 dsnew
= transform(ds1,ds2,...,dsN
,@fcn
,'IncludeInfo',IncludeInfo
)fcn
의 대체 정의를 사용합니다. 대체 정의를 사용하면 데이터저장소의 read
함수에서 반환된 추가 정보를 사용할 수 있습니다.
예제
이미지 모음을 위한 데이터저장소를 만들고 데이터저장소의 모든 이미지에 동일한 변환을 적용합니다. 예를 들어, 모음에 있는 모든 이미지의 크기를 지정된 대상 크기로 조정합니다.
두 개의 이미지가 있는 ImageDatastore
를 만듭니다.
imds = imageDatastore({'street1.jpg','peppers.png'})
imds = ImageDatastore with properties: Files: { ' .../build/runnable/matlab/toolbox/matlab/demos/street1.jpg'; ' .../build/runnable/matlab/toolbox/matlab/matlab_images/png/peppers.png' } Folders: { ' .../Bdoc25a.2864802/build/runnable/matlab/toolbox/matlab/demos'; ' .../build/runnable/matlab/toolbox/matlab/matlab_images/png' } AlternateFileSystemRoots: {} ReadSize: 1 Labels: {} SupportedOutputFormats: ["png" "jpg" "jpeg" "tif" "tiff"] DefaultOutputFormat: "png" ReadFcn: @readDatastoreImage
모든 이미지를 읽어 들입니다. 데이터저장소에 서로 다른 크기의 이미지가 포함되어 있음을 확인할 수 있습니다.
img1 = read(imds); % reads the first image img2 = read(imds); % reads the next image whos img1 img2
Name Size Bytes Class Attributes img1 480x640x3 921600 uint8 img2 384x512x3 589824 uint8
데이터저장소의 모든 이미지를 지정된 대상 크기로 변환합니다.
targetSize = [224,224]; imdsReSz = transform(imds,@(x) imresize(x,targetSize));
이미지를 읽어 들이고 크기를 표시합니다.
imgReSz1 = read(imdsReSz); imgReSz2 = read(imdsReSz); whos imgReSz1 imgReSz2
Name Size Bytes Class Attributes imgReSz1 224x224x3 150528 uint8 imgReSz2 224x224x3 150528 uint8
크기가 조정된 이미지를 표시합니다.
tiledlayout(1,2); nexttile imshow(imgReSz1); axis on; title('Resized Street1.jpg') nexttile imshow(imgReSz2); axis on; title('Resized peppers.png')
여러 datastore 객체를 만들고 모든 데이터저장소에 동일한 변환을 적용합니다. 예를 들어, 여러 이미지를 하나의 사각형 타일 형식 이미지로 결합합니다.
한 개의 이미지가 있는 ImageDatastore
를 만듭니다.
imds1 = imageDatastore({'ngc6543a.jpg'})
imds1 = ImageDatastore with properties: Files: { ' .../build/runnable/matlab/toolbox/matlab/demos/ngc6543a.jpg' } Folders: { ' .../Bdoc25a.2864802/build/runnable/matlab/toolbox/matlab/demos' } AlternateFileSystemRoots: {} ReadSize: 1 Labels: {} SupportedOutputFormats: ["png" "jpg" "jpeg" "tif" "tiff"] DefaultOutputFormat: "png" ReadFcn: @readDatastoreImage
이미지를 작업 공간으로 읽어 들여 원본 이미지의 각 색 채널에서 이미지 파일을 만듭니다.
rgbImage = imread('ngc6543a.jpg'); imwrite(rgbImage(:,:,1),'nebula_red.jpg'); imwrite(rgbImage(:,:,2),'nebula_green.jpg'); imwrite(rgbImage(:,:,3),'nebula_blue.jpg');
각각의 단일채널 이미지에 대해 ImageDatastore
객체를 만듭니다.
imdsR = imageDatastore({'nebula_red.jpg'}); imdsG = imageDatastore({'nebula_green.jpg'}); imdsB = imageDatastore({'nebula_blue.jpg'});
각 데이터저장소에 저장된 이미지를 읽어 들이고 크기를 표시합니다.
imOriginal = read(imds1); img_red = read(imdsR); img_green = read(imdsG); img_blue = read(imdsB); whos img1 img_red img_green img_blue
Name Size Bytes Class Attributes img_blue 650x600 390000 uint8 img_green 650x600 390000 uint8 img_red 650x600 390000 uint8
모든 이미지를 하나의 사각형 타일 형식 이미지로 결합하여 모든 데이터저장소를 변환합니다. imds1
의 컬러 이미지를 회색조로 변환하여 다른 이미지의 차원과 일치하도록 합니다.
tds1 = transform(imds1,imdsR,imdsG,imdsB, @(x1,x2,x3,x4) [rgb2gray(x1),x2;x3,x4]); tile = read(tds1);
타일 형식 이미지를 표시합니다.
imshow(tile)
입력 인수
입력 데이터저장소입니다. 내장된 데이터저장소의 전체 목록을 보려면 파일 형식 또는 애플리케이션에 맞는 데이터저장소 선택하기 항목을 참조하십시오. 사용자 지정 데이터저장소를 지정할 수도 있습니다.
데이터를 변환하는 함수로, 함수 핸들로 지정됩니다. 이 함수는 데이터를 입력값으로 받아 fcn
에 정의된 변환을 기반으로 변환된 데이터를 반환합니다.
변환 함수는 다음과 같은 시그니처를 가져야 하며 ds1_data,ds2_data,...dsN_data
는 read
함수를 사용하여 반환된 데이터와 동일한 형식이어야 합니다.
function dataOut = transformFcn(ds1_data,ds2_data,...dsN_data) .. end
또는 read
함수에서 반환된 데이터에 대한 추가 정보를 사용하도록 변환 함수 fcn
을 정의할 수 있습니다. 이 대체 정의를 사용하려면 IncludeInfo
의 값을 true
로 지정해야 합니다. 이 경우 변환 함수는 다음과 같은 시그니처를 가져야 합니다.
function [dataOut,infoOut] = transformFcn(ds1_data,ds2_data,...dsN_data,ds1_info,ds2_info...dsN_info) .. end
예: @transformFcn
데이터형: function_handle
read
함수의 정보를 포함합니다. true
또는 false
로 지정됩니다. read
함수는 info
구조체의 추출된 데이터에 대한 정보를 반환합니다. 자세한 내용은 read
함수 페이지를 참조하십시오.
IncludeInfo
의 값을 true
로 설정할 경우 변환 함수 fcn
에 대한 대체 시그니처를 사용해야 합니다.
출력 인수
변환된 데이터를 갖는 새 데이터저장소로, TransformedDatastore
객체로 반환됩니다.
확장 기능
사용법 관련 참고 및 제한 사항:
스레드 기반 환경에서는 다음과 같은 데이터저장소에만
transform
함수를 사용할 수 있습니다.ImageDatastore
객체ImageDatastore
객체로부터combine
또는transform
을 사용하여 생성한CombinedDatastore
,SequentialDatastore
또는TransformedDatastore
객체
Parallel Computing Toolbox™가 있는 경우
transform
함수를 다른 데이터저장소에도 사용할 수 있습니다. 이렇게 하려면backgroundPool
또는ThreadPool
을 사용하는 대신 프로세스를 지원하는 병렬 풀을 사용하는 함수를 실행하십시오(ProcessPool
또는ClusterPool
사용).
자세한 내용은 스레드 기반 환경에서 MATLAB 함수 실행하기 항목을 참조하십시오.
버전 내역
R2019a에 개발됨
MATLAB Command
You clicked a link that corresponds to this MATLAB command:
Run the command by entering it in the MATLAB Command Window. Web browsers do not support MATLAB commands.
웹사이트 선택
번역된 콘텐츠를 보고 지역별 이벤트와 혜택을 살펴보려면 웹사이트를 선택하십시오. 현재 계신 지역에 따라 다음 웹사이트를 권장합니다:
또한 다음 목록에서 웹사이트를 선택하실 수도 있습니다.
사이트 성능 최적화 방법
최고의 사이트 성능을 위해 중국 사이트(중국어 또는 영어)를 선택하십시오. 현재 계신 지역에서는 다른 국가의 MathWorks 사이트 방문이 최적화되지 않았습니다.
미주
- América Latina (Español)
- Canada (English)
- United States (English)
유럽
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)