2014-06-08 2 views
0

.png 이미지를 pic = imread(image_name)으로 저장할 수 있으며 크기를 포함한 행렬로 처리하여 [nrows, ncols, ~] = size(pic)을 검색 할 수 있습니다. 그런 다음 imshow(pic)으로이 이미지를 쉽게 표시 할 수 있습니다.Matlab의 행렬과 이미지의 차이점은 무엇입니까?

그러나 test = zeros(nrows, ncols, 3)으로 자체 매트릭스를 만들고 test(:, :, :) = pic으로 이미지를 복사하려고 시도하고 imshow(test)을 사용해도 작동하지 않습니다. 나는 요소에 의해 testpic 요소를 비교할 수 있습니다 그리고 그들은 동일하지만, 나는 두 뺄 수 없거나 내가 매트릭스를 만들 수 있습니다 어떻게

Error using - 
Integers can only be combined with integers of the same class, or scalar doubles. 

의 오류가 발생하고 그것에 이미지의 픽셀을 할당 여전히 행렬을 이미지로 취급합니까? 이 작업을 수행하려고하는 이유는 하나의 큰 그림으로 결합하려는 많은 그림이 있으므로 사전에 큰 행렬을 만든 다음 각 개별 이미지의 픽셀을 큰 행렬에 복사해야하므로이 큰 행렬 imshow 또는 imwrite을 사용하면 더 이상 이미지로 처리되지 않습니다.

답변

1

오류는 당신이 놓친 것을 알려줍니다. 중요한 변수 인 class입니다. 이미지에는 어떤 클래스 유형 (uint8, uint16 ...)이 있으며, 달리 명시하지 않는 한 MATLAB의 일반 매트릭스는 double입니다. 정의하려고 시도하십시오

test = zeros(size(pic),class(pic)); 
+0

완벽한 해결책 감사합니다. – drjrm3

관련 문제