元々mriの画像を三次元に拡張してボリュームデータから等値面を表示させるプログラムを作成していたのですが,使う画像にアンシャープマスキングを行って同様の処理を行いたいです.エラーを吐いてしまってどうすればいいかわかりません.ご教授お願いします.
元のプログラム
clear; clc; close all;
fileFolder = fullfile(pwd);
dcmFiles = dir(fullfile(fileFolder,'*.dcm'));
numfiles = length(dcmFiles);
dcm = dicomread(dcmFiles(1).name);
grayscale = zeros(size(dcm,1),size(dcm,2),numfiles);
for k = 2:numfiles
grayscale(:,:,k) = dicomread(dcmFiles(k).name);
end
data = cast(grayscale,'uint8');
vol = isosurface(data, 50)
figure;
patch(vol, 'FaceColor','red', 'EdgeColor','none');
view(-40,24)
daspect([1 1 0.3])
colormap(gray); box on; camlight; lighting gouraud;
sec = isocaps(data, 5);
patch(sec, 'FaceColor','interp', 'EdgeColor','none'); shg;
作成したプログラム
clear; cl
c; close all;
fileFolder = fullfile(pwd);
imFiles = dir(fullfile(fileFolder,'*.bmp'));
numfiles = length(imFiles);
im = imread(imFiles(1).name);
B = imsharpen(im)
figure;
imshow(B)
sharpscale = zeros(size(B,1),size(B,2),numfiles);
for k = 2:numfiles
sharpscale(:,:,k) = imread(imFiles(k).name);
sharpscale(:,:,k) = imsharpen(imFiles(k).name)
end
data = cast(sharpscale,'uint8');
vol = isosurface(data)
figure;
patch(vol, 'FaceColor','red', 'EdgeColor','none');
view(-40,24)
daspect([1 1 0.3])
colormap(gray); box on; camlight; lighting gouraud;
sec = isocaps(data, 5);
patch(sec, 'FaceColor','interp', 'EdgeColor','none'); shg;
エラー表示が出てしまいます.
エラー: imsharpen
1 番目の入力引数 A は次のタイプのいずれかにする必要があります:
uint8, int8, uint16, int16, uint32, int32, single, double
指定されたタイプは char でした。
エラー: imsharpen>parse_inputs (line 209)
validateattributes(A,validImageTypes,{'nonsparse','real'},mfilename,'A',1);
エラー: imsharpen (line 79)
[A, radius, amount, threshold] = parse_inputs(varargin{:});
エラー: sharp (line 14)
sharpscale(:,:,k) = imsharpen(imFiles(k).name)