このペ,ジの翻訳は最新ではありません。ここをクリックして,英語の最新版を参照してください。
变换
デ,タストアの変換
構文
説明
は,変換関数dsnew
=变换(ds1, ds2,…,dsN
,@fcn
)fcn
を使用して1dsnew
を返します。fcn
は,関数变换
への呼び出しのすべての入力デ,タストアの前または後に配置できます。
は,変換関数dsnew
=变换(ds1, ds2,…,dsN
,@fcn
“IncludeInfo”,IncludeInfo
)fcn
の代替定義を使用します。代替定義により,関数读
で返されたデ,タストアの追加情報を使用できるようになります。
例
メ,ジの集合に変換を適用
イメージの集合用のデータストアを作成し,そのデータストア内のすべてのイメージに同じ変換を適用します。たとえば,集合内のすべてのメジを,指定したタゲットサズに変更します。
2 .ImageDatastore
を作成します。
imds = imageDatastore({“street1.jpg”,“peppers.png”})
imds = ImageDatastore属性:Files:{'…/devel/bat/Bdoc21b/build/matlab/toolbox/matlab/demos/street1.jpg';文件夹:{'/mathworks/devel/bat/Bdoc21b/build/matlab/toolbox/matlab/ imagesci/椒椒水.png';'/mathworks/devel/bat/Bdoc21b/build/matlab/toolbox/matlab/imagesci'} AlternateFileSystemRoots: {} ReadSize: 1 Labels: {} S金宝appupportedOutputFormats: ["png" "jpg" "jpeg" "tif" "tiff"] DefaultOutputFormat: "png" ReadFcn: @readDatastoreImage
すべての▪▪メ▪▪ジを読み取ります。デ,タストアには異なるサイズのイメージが含まれていることがわかります。
Img1 = read(imds);%读取第一个图像Img2 = read(imds);%读取下一个图像谁img1img2
名称大小字节类型属性img1 480x640x3 921600 uint8 img2 384x512x3 589824 uint8
デタストア内のすべてのメジを,指定したタゲットサズに変換します。
targetSize = [224,224];imdsReSz = transform(imds,@(x) imresize(x,targetSize));
@ @ @ @ @ @ @ @ @ @ @ @ @ @。
imgReSz1 = read(imdsReSz);imgReSz2 = read(imdsReSz);谁imgReSz1imgReSz2
名称大小字节类属性imgReSz1 224x224x3 150528 uint8 imgReSz2 224x224x3 150528 uint8
サ@ @ズ変更後の@ @メ@ @ジを表示します。
次要情节(121);imshow (imgReSz1);轴在;标题(“调整大小Street1.jpg”);次要情节(122);imshow (imgReSz2);轴在;标题(“调整大小peppers.png”);
複数のデ,タストアの変換
複数の数据存储オブジェクトを作成し,同じ変換をすべてのデ,タストアに適用します。。
1ImageDatastore
を作成します。
imds1 = imageDatastore({“ngc6543a.jpg”})
imds1 = ImageDatastore,具有属性:文件:{`…/devel/bat/ build/matlab/toolbox/matlab/demos/ngc6543a.jpg `}文件夹:{` /mathworks/devel/bat/Bdoc21b/build/matlab/toolbox/matlab/demos `} AlternateFileSystemRoots: {} ReadSize: 1标签:{}SupportedOutputFormats: ["png" "jpg" "jp金宝appeg" "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);谁img1img_redimg_greenimg_blue
名称大小字节分类属性img_blue 650x600 390000 uint8 img_green 650x600 390000 uint8 img_red 650x600 390000 uint8
すべてのジを1。imds1
のカラーイメージをグレースケールに変換して,その次元を他のイメージの次元と一致させます。
tds1 = transform(imds1,imdsR,imdsG,imdsB, @(x1,x2,x3,x4) [rgb2gray(x1),x2;x3,x4]);Tile = read(tds1);
タ@ @ル@ @メ@ @ジを表示します。
imshow(瓷砖)
入力引数
ds1, ds2,…,dsN
- - - - - -入力デ,タストア
数据存储オブジェクト
入力デ,タストア。組み込みデ,タストアの完全な一覧は,ファル形式またはアプリケション用のデタストアの選択を参照してください。カスタムデ,タストアも指定できます。
@fcn
- - - - - -デ,タを変換する関数
関数ハンドル
デ,タを変換する関数。関数ハンドルとして指定します。関数はデータを入力として受け取り、fcn
に定義された変換に基づいて変換したデ,タを返します。
変換関数には次のシグネチャが必要であり,ds1_data、ds2_data…dsN_data
は,関数读
を使用して返されるデ,タと同じ形式でなければなりません。
函数dataOut = transformFcn(ds1_data,ds2_data, ds2_data,...dsN_data)..结束
あるいは,関数读
で返されるデ,タに関する追加情報を使用するように,変換関数fcn
を定義できます。この代替定義を使用するには,IncludeInfo
の値を真正的
に指定しなければなりません。この場合,変換関数には次のシグネチャが必要です。
函数[dataOut,infoOut] = transformFcn(ds1_data,ds2_data, ds2_data,...dsN_data、ds1_info ds2_info…dsN_info)..结束
例:@transformFcn
デ,タ型:function_handle
IncludeInfo
- - - - - -関数读
からの情報を含めるかどうか
真正的
|假
関数读
からの情報を含めるかどうか。真正的
または假
として指定します。関数读
は,抽出されたデ,タに関する情報を信息
Structに返します。詳細にいては,関数读
のペ,ジを参照してください。
IncludeInfo
の値を真正的
に設定した場合は,変換関数fcn
の代替シグネチャを使用しなければなりません。
出力引数
dsnew
—変換後のデタを含む新しいデタストア
TransformedDatastore
オブジェクト
変換後のデ,タを含む新しいデ,タストア。TransformedDatastore
オブジェクトとして返されます。
拡張機能
スレッドベ,スの環境
MATLAB®backgroundPool
を使用してバックグラウンドでコードを実行するか,并行计算工具箱™のThreadPool
を使用してコ,ドを高速化します。
使用上の注意事項および制限事項:
スレッドベ,スの環境では,次のデ,タストアでのみ
变换
を使用できます。ImageDatastore
オブジェクト结合
または变换
を使用してImageDatastore
オブジェクトから作成するCombinedDatastore
またはTransformedDatastore
オブジェクト
并行计算工具箱™がある場合は,他のデ,タストアで
变换
を使用できます。これを行うには,backgroundPool
またはThreadPool
を使用する代わりに,プロセスベ,スの並列プ,ルを使用して関数を実行します(ProcessPool
またはClusterPool
を使用します)。
詳細にいては,在线程环境中运行MATLAB函数を参照してください。
バ,ジョン履歴
Matlabコマンド
次のmatlabコマンドに対応するリンクがクリックされました。
コマンドをmatlabコマンドウィンドウに入力して実行してください。Webブラウザ,はMATLABコマンドをサポ,トしていません。
您也可以从以下列表中选择一个网站:
如何获得最佳的网站性能
选择中国站点(中文或英文)以获得最佳站点性能。其他MathWorks国家站点没有针对您所在位置的访问进行优化。