splitEachLabel
비율을 기준으로 ImageDatastore 레이블 분할
구문
설명
[
는 imds1,imds2
] = splitEachLabel(imds
,p
)imds
의 이미지 파일을 2개의 새 데이터저장소인 imds1
과 imds2
로 분할합니다. 새 데이터저장소 imds1
에는 각 레이블에서 첫 번째 p
개 또는 p 비율에 해당하는 파일이 포함되고 imds2
에는 각 레이블의 나머지 파일이 포함됩니다. p
는 각 레이블에서 imds1
에 할당할 파일의 비율을 나타내는 0과 1 사이의 숫자일 수도 있고, 각 레이블에서 imds1
에 할당할 파일의 절대 개수를 나타내는 정수일 수도 있습니다.
[
은 데이터저장소를 imds1,...,imdsM
] = splitEachLabel(imds
,p1,...,pN
)N+1
개의 새 데이터저장소로 분할합니다. 첫 번째 새 데이터저장소인 imds1
에는 각 레이블에서 첫 번째 p1
개 또는 p1 비율에 해당하는 파일이 포함되고 그다음 새 데이터저장소인 imds2
에는 그다음 p2
개 또는 p2 비율에 해당하는 파일이 포함되는 식입니다. p1,...,pN
이 파일 개수를 나타내는 경우 이들의 합은 원래 데이터저장소 imds
에서 가장 작은 레이블에 포함된 파일의 개수보다 크지 않아야 합니다.
___ = splitEachLabel(___,'randomized')
는 각 레이블에서 지정된 비율에 해당하는 파일을 새 데이터저장소에 무작위로 할당합니다.
___ = splitEachLabel(___,
는 하나 이상의 이름-값 쌍의 인수를 사용하여 새 데이터저장소의 속성을 지정합니다. 예를 들어, Name,Value
)'Include','labelname'
을 사용하여 분할할 레이블을 지정할 수 있습니다.
예제
백분율을 기준으로 레이블 분할하기
ImageDatastore
객체를 만들고 이 객체가 포함되는 폴더의 이름에 따라 각 이미지의 레이블을 지정합니다. 결과로 생성되는 레이블 이름은 demos
와 imagesci
입니다.
imds = imageDatastore(fullfile(matlabroot, 'toolbox', 'matlab', {'demos','imagesci'}),... 'LabelSource', 'foldernames', 'FileExtensions', {'.jpg', '.png', '.tif'}); imds.Labels
ans = demos demos demos demos demos demos imagesci imagesci
imds
의 파일에서 2개의 새 데이터저장소를 만듭니다. 첫 번째 데이터저장소인 imds60
에는 demos
레이블이 지정된 파일 중 처음 60%에 해당하는 파일과 imagesci
레이블이 지정된 파일 중 처음 60%에 해당하는 파일이 포함됩니다. 두 번째 데이터저장소인 imds40
에는 각 레이블에서 나머지 40%에 해당하는 파일이 포함됩니다. 레이블에 적용되는 비율의 결과가 파일의 정수 개수를 나타내지 않는 경우 splitEachLabel
은 가장 가까운 정수로 버림합니다.
[imds60,imds40] = splitEachLabel(imds,0.6)
imds60 = ImageDatastore with properties: Files: { ' ...\matlab\toolbox\matlab\demos\cloudCombined.jpg'; ' ...\matlab\toolbox\matlab\demos\example.tif'; ' ...\matlab\toolbox\matlab\demos\landOcean.jpg' ... and 2 more } Labels: [demos; demos; demos ... and 2 more categorical] ReadFcn: @readDatastoreImage imds40 = ImageDatastore with properties: Files: { ' ...\matlab\toolbox\matlab\demos\street1.jpg'; ' ...\matlab\toolbox\matlab\demos\street2.jpg'; ' ...\matlab\toolbox\matlab\imagesci\peppers.png' } Labels: [demos; demos; imagesci] ReadFcn: @readDatastoreImage
파일 개수를 기준으로 레이블 분할하기
ImageDatastore
객체를 만들고 이 객체가 포함되는 폴더의 이름에 따라 각 이미지의 레이블을 지정합니다. 결과로 생성되는 레이블 이름은 demos
와 imagesci
입니다.
imds = imageDatastore(fullfile(matlabroot, 'toolbox', 'matlab', {'demos','imagesci'}),... 'LabelSource', 'foldernames', 'FileExtensions', {'.jpg', '.png', '.tif'}); imds.Labels
ans = demos demos demos demos demos demos imagesci imagesci
imds
의 파일에서 2개의 새 데이터저장소를 만듭니다. 첫 번째 데이터저장소인 imds1
에는 demos
레이블이 지정된 첫 번째 파일과 imagesci
레이블이 지정된 첫 번째 파일이 포함됩니다. 두 번째 데이터저장소인 imds2
에는 각 레이블의 나머지 파일이 포함됩니다.
[imds1,imds2] = splitEachLabel(imds,1)
imds1 = ImageDatastore with properties: Files: { ' ...\matlab\toolbox\matlab\demos\cloudCombined.jpg'; ' ...\matlab\toolbox\matlab\imagesci\corn.tif' } Labels: [demos; imagesci] ReadFcn: @readDatastoreImage imds2 = ImageDatastore with properties: Files: { ' ...\matlab\toolbox\matlab\demos\example.tif'; ' ...\matlab\toolbox\matlab\demos\landOcean.jpg'; ' ...\matlab\toolbox\matlab\demos\ngc6543a.jpg' ... and 3 more } Labels: [demos; demos; demos ... and 3 more categorical] ReadFcn: @readDatastoreImage
백분율을 기준으로 여러 방법에 따라 레이블 분할하기
ImageDatastore
객체를 만들고 이 객체가 포함되는 폴더의 이름에 따라 각 이미지의 레이블을 지정합니다. 결과로 생성되는 레이블 이름은 demos
와 imagesci
입니다.
imds = imageDatastore(fullfile(matlabroot, 'toolbox', 'matlab', {'demos','imagesci'}),... 'LabelSource', 'foldernames', 'FileExtensions', {'.jpg', '.png', '.tif'}); imds.Labels
ans = demos demos demos demos demos demos imagesci imagesci
imds
의 파일에서 3개의 새 데이터저장소를 만듭니다. 첫 번째 데이터저장소인 imds60
에는 demos
레이블이 지정된 파일 중 처음 60%에 해당하는 파일과 imagesci
레이블이 지정된 파일 중 처음 60%에 해당하는 파일이 포함됩니다. 두 번째 데이터저장소인 imds10
에는 각 레이블에서 다음 10%에 해당하는 파일이 포함됩니다. 세 번째 데이터저장소인 imds30
에는 각 레이블에서 나머지 30%에 해당하는 파일이 포함됩니다. 레이블에 적용되는 비율의 결과가 파일의 정수 개수를 나타내지 않는 경우 splitEachLabel
은 가장 가까운 정수로 버림합니다.
[imds60, imds10, imds30] = splitEachLabel(imds,0.6,0.1)
imds60 = ImageDatastore with properties: Files: { ' ...\matlab\toolbox\matlab\demos\cloudCombined.jpg'; ' ...\matlab\toolbox\matlab\demos\example.tif'; ' ...\matlab\toolbox\matlab\demos\landOcean.jpg' ... and 2 more } Labels: [demos; demos; demos ... and 2 more categorical] ReadFcn: @readDatastoreImage imds10 = ImageDatastore with properties: Files: { ' ...\matlab\toolbox\matlab\demos\street1.jpg' } Labels: demos ReadFcn: @readDatastoreImage imds30 = ImageDatastore with properties: Files: { ' ...\matlab\toolbox\matlab\demos\street2.jpg'; ' ...\matlab\toolbox\matlab\imagesci\peppers.png' } Labels: [demos; imagesci] ReadFcn: @readDatastoreImage
파일 개수를 기준으로 여러 방법에 따라 레이블 분할하기
ImageDatastore
객체를 만들고 이 객체가 포함되는 폴더의 이름에 따라 각 이미지의 레이블을 지정합니다. 결과로 생성되는 레이블 이름은 demos
와 imagesci
입니다.
imds = imageDatastore(fullfile(matlabroot, 'toolbox', 'matlab', {'demos','imagesci'}),... 'LabelSource', 'foldernames', 'FileExtensions', {'.jpg', '.png', '.tif'}); imds.Labels
ans = demos demos demos demos demos demos imagesci imagesci
imds
의 파일에서 3개의 새 데이터저장소를 만듭니다. 첫 번째 데이터저장소인 imds1
에는 demos
레이블이 지정된 첫 번째 파일과 imagesci
레이블이 지정된 첫 번째 파일이 포함됩니다. 두 번째 데이터저장소인 imds2
에는 각 레이블에서 다음 파일이 포함됩니다. 세 번째 데이터저장소인 imds3
에는 각 레이블의 나머지 파일이 포함됩니다.
[imds1, imds2, imds3] = splitEachLabel(imds,1,1)
imds1 = ImageDatastore with properties: Files: { ' ...\matlab\toolbox\matlab\demos\cloudCombined.jpg'; ' ...\matlab\toolbox\matlab\imagesci\corn.tif' } Labels: [demos; imagesci] ReadFcn: @readDatastoreImage imds2 = ImageDatastore with properties: Files: { ' ...\matlab\toolbox\matlab\demos\example.tif'; ' ...\matlab\toolbox\matlab\imagesci\peppers.png' } Labels: [demos; imagesci] ReadFcn: @readDatastoreImage imds3 = ImageDatastore with properties: Files: { ' ...\matlab\toolbox\matlab\demos\landOcean.jpg'; ' ...\matlab\toolbox\matlab\demos\ngc6543a.jpg'; ' ...\matlab\toolbox\matlab\demos\street1.jpg' ... and 1 more } Labels: [demos; demos; demos ... and 1 more categorical] ReadFcn: @readDatastoreImage
무작위로 레이블 분할하기
ImageDatastore
객체를 만들고 이 객체가 포함되는 폴더의 이름에 따라 각 이미지의 레이블을 지정합니다. 결과로 생성되는 레이블 이름은 demos
와 imagesci
입니다.
imds = imageDatastore(fullfile(matlabroot, 'toolbox', 'matlab', {'demos','imagesci'}),... 'LabelSource', 'foldernames', 'FileExtensions', {'.jpg', '.png', '.tif'}); imds.Labels
ans = demos demos demos demos demos demos imagesci imagesci
각 레이블에서 무작위로 도출하는 방법으로 imds
의 파일에서 2개의 새 데이터저장소를 만듭니다. 첫 번째 데이터저장소인 imds1
에는 demos
레이블이 지정된 파일 중 무작위로 선택된 파일 하나와 imagesci
레이블이 지정된 파일 중 무작위로 선택된 파일 하나가 포함됩니다. 두 번째 데이터저장소인 imds2
에는 각 레이블의 나머지 파일이 포함됩니다.
[imds1, imds2] = splitEachLabel(imds,1,'randomized')
imds1 = ImageDatastore with properties: Files: { ' ...\matlab\toolbox\matlab\demos\street2.jpg'; ' ...\matlab\toolbox\matlab\imagesci\corn.tif' } Labels: [demos; imagesci] ReadFcn: @readDatastoreImage imds2 = ImageDatastore with properties: Files: { ' ...\matlab\toolbox\matlab\demos\cloudCombined.jpg'; ' ...\matlab\toolbox\matlab\demos\example.tif'; ' ...\matlab\toolbox\matlab\demos\landOcean.jpg' ... and 3 more } Labels: [demos; demos; demos ... and 3 more categorical] ReadFcn: @readDatastoreImage
지정된 레이블 포함하기와 제외시키기
ImageDatastore
객체를 만들고 이 객체가 포함되는 폴더의 이름에 따라 각 이미지의 레이블을 지정합니다. 결과로 생성되는 레이블 이름은 demos
와 imagesci
입니다.
imds = imageDatastore(fullfile(matlabroot, 'toolbox', 'matlab', {'demos','imagesci'}),... 'LabelSource', 'foldernames', 'FileExtensions', {'.jpg', '.png', '.tif'}); imds.Labels
ans = demos demos demos demos demos demos imagesci imagesci
imds
의 파일에서 demos
레이블이 지정된 파일만 포함하는 2개의 새 데이터저장소를 만듭니다. 첫 번째 데이터저장소인 imds60
에는 demos
레이블이 지정된 파일 중 처음 60%에 해당하는 파일이 포함되고 두 번째 데이터저장소인 imds40
에는 demos
레이블이 지정된 파일 중 나머지 40%에 해당하는 파일이 포함됩니다.
[imds60, imds40] = splitEachLabel(imds,0.6,'Include','demos')
imds60 = ImageDatastore with properties: Files: { ' ...\matlab\toolbox\matlab\demos\cloudCombined.jpg'; ' ...\matlab\toolbox\matlab\demos\example.tif'; ' ...\matlab\toolbox\matlab\demos\landOcean.jpg' ... and 1 more } Labels: [demos; demos; demos ... and 1 more categorical] ReadFcn: @readDatastoreImage imds40 = ImageDatastore with properties: Files: { ' ...\matlab\toolbox\matlab\demos\street1.jpg'; ' ...\matlab\toolbox\matlab\demos\street2.jpg' } Labels: [demos; demos] ReadFcn: @readDatastoreImage
또는 imagesci
레이블을 제외시켜 demos
레이블만 분할할 수도 있습니다.
[imds60, imds40] = splitEachLabel(imds,0.6,'Exclude','imagesci')
imds60 = ImageDatastore with properties: Files: { ' ...\matlab\toolbox\matlab\demos\cloudCombined.jpg'; ' ...\matlab\toolbox\matlab\demos\example.tif'; ' ...\matlab\toolbox\matlab\demos\landOcean.jpg' ... and 1 more } Labels: [demos; demos; demos ... and 1 more categorical] ReadFcn: @readDatastoreImage imds40 = ImageDatastore with properties: Files: { ' ...\matlab\toolbox\matlab\demos\street1.jpg'; ' ...\matlab\toolbox\matlab\demos\street2.jpg' } Labels: [demos; demos] ReadFcn: @readDatastoreImage
입력 인수
imds
— 입력 데이터저장소
ImageDatastore
객체
입력 데이터저장소로, ImageDatastore
객체로 지정됩니다. 이미지 데이터에서 ImageDatstore
를 생성하려면 imageDatastore
함수를 사용하십시오.
p
— 분할할 파일의 비율
구간 (0,1) 내 스칼라 | 양의 정수 스칼라
분할할 파일의 비율로, 구간 (0,1) 내 스칼라나 양의 정수 스칼라로 지정됩니다.
p
가 구간 (0,1) 내에 있는 경우 각 레이블에서imds1
에 할당할 파일의 비율을 나타냅니다.p
가 파일의 정수 개수를 반환하지 않는 경우splitEachLabel
은 가장 가까운 정수로 버림합니다.p
가 정수인 경우 각 레이블에서imds1
에 할당할 파일의 절대 개수를 나타냅니다. 각 레이블마다 연결된 파일이p
개 이상 있어야 합니다.
데이터형: double
p1,...,pN
— 비율 목록
구간 (0,1) 내 스칼라 | 양의 정수 스칼라
비율 목록으로, 구간 (0,1) 내 스칼라이거나 양의 정수 스칼라로 지정됩니다. 비율이 구간 (0,1) 내에 있는 경우 각 레이블에서 출력 데이터저장소에 할당할 파일의 비율을 나타냅니다. 비율이 정수인 경우 각 레이블에서 출력 데이터저장소에 할당할 파일의 절대 개수를 나타냅니다. 비율이 백분율을 나타내는 경우 비율의 합은 1보다 크지 않아야 합니다. 비율이 파일의 개수를 나타내는 경우 각 비율이 충족되도록 충분한 개수의 파일이 각 레이블에 연결되어 있어야 합니다.
데이터형: double
이름-값 인수
선택적 인수 쌍을 Name1=Value1,...,NameN=ValueN
으로 지정합니다. 여기서 Name
은 인수 이름이고 Value
는 대응값입니다. 이름-값 인수는 다른 인수 뒤에 와야 하지만, 인수 쌍의 순서는 상관없습니다.
R2021a 이전 릴리스에서는 쉼표를 사용하여 각 이름과 값을 구분하고 Name
을 따옴표로 묶으십시오.
예: [imds1 imds2] = splitEachLabel(imds,0.5,'Exclude','demos')
Include
— 포함시킬 레이블
categorical형 벡터, 논리형 벡터, 숫자형 벡터 중 하나 | 문자형 벡터로 구성된 셀형 배열 | string형 배열
포함시킬 레이블로, 'Include'
와 함께 Labels
속성과 동일한 유형의 레이블 이름으로 구성된 셀형 배열, string형 배열이나 벡터가 쉼표로 구분되어 지정됩니다. 각 이름은 데이터저장소의 Labels
속성에 포함된 레이블 중 하나와 일치해야 합니다.
데이터형: char
| cell
| string
Exclude
— 제외시킬 레이블
categorical형 벡터, 논리형 벡터, 숫자형 벡터 중 하나 | 문자형 벡터로 구성된 셀형 배열 | string형 배열
제외시킬 레이블로, 'Exclude'
와 함께 Labels
속성과 동일한 유형의 레이블 이름으로 구성된 셀형 배열, string형 배열이나 벡터가 쉼표로 구분되어 지정됩니다. 각 이름은 데이터저장소와 연결된 레이블을 지정하고 Labels
의 이름과 일치해야 합니다. 이 옵션은 'Include'
옵션과 함께 사용할 수 없습니다.
데이터형: char
| cell
| string
출력 인수
imds1,imds2
— 출력 데이터저장소
ImageDatastore
객체
출력 데이터저장소로, ImageDatastore
객체로 반환됩니다. imds1
에는 imds
에 포함된 각 레이블에서 지정된 비율에 해당하는 파일이 포함되고 imds2
에는 나머지 파일이 포함됩니다.
imds1,...,imdsM
— 출력 데이터저장소 목록
ImageDatastore
객체
출력 데이터저장소 목록으로, ImageDatastore
객체로 반환됩니다. 목록에 포함된 요소 개수는 나열된 비율 개수보다 하나 더 많습니다. 각각의 새 데이터저장소에는 imds
의 각 레이블에서 p1,...,pN
로 정의된 비율만큼 포함됩니다. 나머지 파일은 M번째 데이터저장소에 모두 할당됩니다.
확장 기능
스레드 기반 환경
MATLAB®의 backgroundPool
을 사용해 백그라운드에서 코드를 실행하거나 Parallel Computing Toolbox™의 ThreadPool
을 사용해 코드 실행 속도를 높일 수 있습니다.
이 함수는 스레드 기반 환경을 완전히 지원합니다. 자세한 내용은 스레드 기반 환경에서 MATLAB 함수 실행하기 항목을 참조하십시오.
버전 내역
R2016a에 개발됨
참고 항목
MATLAB 명령
다음 MATLAB 명령에 해당하는 링크를 클릭했습니다.
명령을 실행하려면 MATLAB 명령 창에 입력하십시오. 웹 브라우저는 MATLAB 명령을 지원하지 않습니다.
Select a Web Site
Choose a web site to get translated content where available and see local events and offers. Based on your location, we recommend that you select: .
You can also select a web site from the following list:
How to Get Best Site Performance
Select the China site (in Chinese or English) for best site performance. Other MathWorks country sites are not optimized for visits from your location.
Americas
- América Latina (Español)
- Canada (English)
- United States (English)
Europe
- 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)