阅读和重建图像的像素值
3视图(30天)
显示旧的评论
你好!我想读一个图像的像素值和重建后,但新形象的表现是不同的,虽然形状是相似的。
你能帮我解决这个问题吗?非常感谢。
附件是我的代码。
清晰;
clc;
(文件,路径)= uigetfile (‘* .tif‘,'请选择您的文件:,…
“多选”,“上”);
fid = imread(文件);
大小(m, n, k) = (fid);
Num_scan = 1;
为x = 1: m
为y = 1: n
RGB = impixel (fid, x, y);
照片(Num_scan 1) = x;
照片(Num_scan, 2) = y;
A_Pix0 (Num_scan, 1) = RGB (1);
A_Pix0 (Num_scan, 2) = RGB (2);
A_Pix0 (Num_scan, 3) = RGB (3);
Num_scan = Num_scan + 1;
结束
结束
A_Pix =重塑(A_Pix0 [n m 3]);
图像(A_Pix)
以下是原始图像和新形象。
0评论
答案(1)
图像分析
2018年7月14日
编辑:图像分析
2018年7月14日
我不知道为什么你打开一个tiff格式文件,并试图读取并重建一个像素。只是打开它tif图像和复制:
[baseFileName,文件夹]= uigetfile (‘* .tif‘,'请选择您的文件:,…“多选”、“关闭”);
fullFileName = fullfile(文件夹,baseFileName);
image1 = imread (fullFileName);
A_pix = image1;
同时,支撑材常用文件标识,或fopen()返回的文件句柄。你应该选择一个名字像rgbImage支撑材,而是因为它是混乱的,至少它困惑我,直到我终于找到了你在做什么。
顺便说一下你
错误- - - - - -
令人困惑的行和列的x和y。数组索引(行、列),
不
(x, y)。
这种错误出现
另一个常见的错误- - - - - -
选择non-descriptive单字母变量名像m, n, x, y, i, j,等。注意m是真的行但你有x(水平指定)从1行而不是1列?修正如下:
(行、列,numberOfColorChannels) =大小(rgbImage)
为坳= 1:列
为行= 1:行
3评论
为副总经理
2022年8月3日
编辑:为副总经理
2022年8月3日
如果你想做的
同样的事情
什么原文,那么你是幸运的,因为它基本上没有。
%这是原始代码。
%这段代码非常缓慢,需要超过15分钟
%处理384 x512形象
fid = imread (“peppers.png”);
fid = fid (1:10, 1:10:);%没有意义浪费时间一事无成
大小(m, n, k) = (fid);
Num_scan = 1;
为x = 1: m
为y = 1: n
RGB = impixel (fid, x, y);
照片(Num_scan 1) = x;
照片(Num_scan, 2) = y;
%重塑图像分成三栏矩阵
A_Pix0 (Num_scan, 1) = RGB (1);
A_Pix0 (Num_scan, 2) = RGB (2);
A_Pix0 (Num_scan, 3) = RGB (3);
Num_scan = Num_scan + 1;
结束
结束
A_Pix =重塑(A_Pix0 [n m 3]);%的图像只是重塑回来
%这本质上是一样的
inpict = imread (“peppers.png”);
inpict = inpict (1:10, 1:10:);%使用相同的图像区域
[m, n, ~] =大小(inpict);
[xx yy] = meshgrid (1: n, 1: m);
allpixindices = (xx (:) yy (:));%一堆指数由于某种原因
outpict = inpict;%的代码实现图像没有任何变化
allpixindices isequal(沥青)%索引数组是相同的
isequal(双(A_Pix), outpict)%的图片是相同的
我假设大多数人不需要帮助编写一个图像处理脚本,accompishes完全零改变的图像数据,所以你不能后
同样的事情
那OP想要的。创建一个新的图像从一个旧的图像可能是其中最模糊的图像处理,可以设想的描述。没有人可以给你定制代码来完成特定的任务,如果任务不能被描述。
如果你的目标是仅仅改变图像像素元组的列表,然后使用重塑()和交换()必要时得到任何你想要的方向。
[],pixtable =重塑(inpict大小(inpict, 3))