怎么将一副图片形成01点阵,用MATLAB.的方法?也就是逐像素提取方法的具体语句是什么呀?非常感谢!
答案:2 悬赏:80
解决时间 2021-04-07 20:09
- 提问者网友:野性
- 2021-04-06 23:04
怎么将一副图片形成01点阵,用MATLAB.的方法?也就是逐像素提取方法的具体语句是什么呀?非常感谢!
最佳答案
- 二级知识专家网友:我叫很个性
- 2021-04-06 23:49
你这个问题问的都不清楚
不知道你是要获得图像的各个位平面(0-1二值图像)还是对图像进行二值化得到0-1图像
如果是提取位平面,那语句bitget(A,i)即可,其中A表示某个灰度图像,i表示第i位,一般可取0-8任一值。
例:
A=fix(rand(4)*255)
A =
207 161 244 244
230 24 246 123
32 71 40 204
232 139 247 36
>> bitget(A,1)
ans =
1 1 0 0
0 0 0 1
0 1 0 0
0 1 1 0
如果是图像二值化,则可以简单的使用otsu算法
p=unit8(A); %强制类型转换为无符号8位
t=graythresh(p);%求阈值
bw=im2bw(p,t); %二值化
t =
0.5863
bw =
1 1 1 1
1 0 1 0
0 0 0 1
1 0 1 0
如果只想生成一个任意的m x n的 0-1矩阵,则直接使用
A=round(rand(m,n)) 即可
不知道你是要获得图像的各个位平面(0-1二值图像)还是对图像进行二值化得到0-1图像
如果是提取位平面,那语句bitget(A,i)即可,其中A表示某个灰度图像,i表示第i位,一般可取0-8任一值。
例:
A=fix(rand(4)*255)
A =
207 161 244 244
230 24 246 123
32 71 40 204
232 139 247 36
>> bitget(A,1)
ans =
1 1 0 0
0 0 0 1
0 1 0 0
0 1 1 0
如果是图像二值化,则可以简单的使用otsu算法
p=unit8(A); %强制类型转换为无符号8位
t=graythresh(p);%求阈值
bw=im2bw(p,t); %二值化
t =
0.5863
bw =
1 1 1 1
1 0 1 0
0 0 0 1
1 0 1 0
如果只想生成一个任意的m x n的 0-1矩阵,则直接使用
A=round(rand(m,n)) 即可
全部回答
- 1楼网友:偏爱自由
- 2021-04-07 00:31
这个你需要一个阈值 比如像素值大于60则为1 小于60则为0
I=imread('***.jpg');
Img=rgb2gray(I);
[H W]=size(Img);
for k=1:H
for m=1:W
if(Img(k,m)>60)
Img(k,m)=1;
else
Img(k,m)=0;
end
end
end
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯