3081:C++ L11 图像的二值化处理

文件提交:无需freopen 内存限制:128 MB 时间限制:1.000 S
评测方式:普通裁判
金币值:1
命题人:
提交:105 解决:55

题目描述

我们把用黑、白、灰颜色表示的图像叫做灰度图(Gray Image)。像素是组成图像的最小单元,灰度图的每个像素的颜色记为一个0~255的整数,叫做像素值。0代表黑,255代表白,其他数字代表不同深度的灰色,数值越大颜色越。如下图所示。



一张黑白照片高度是m个像素,度是n个像素。我们可以用二维数组描述这个m*n的像素点阵。下面的例图是一个7*8的像素点阵,并标记了像素

二值图(Binary Image)是指仅包含黑色和白色两种颜色的图像。二值图的像素值只0255,分别代表黑和白。

图像的二值化处理过程如下:选择一个临界值k所有小于k像素值设置为0所有大于或等于k像素值,设置为255。这种方法可以将灰度图转化为二值图。例图中k=125时的二值图如下图所示。

现在请你写一个程序,已知灰度图每个点的像素值,以及临界值k,求二值图每个点的像素值。

 


输入

第一行包含两个整数m1<=m<=30n1<=n<=30,分别代表灰度图的高度和宽度;

第二行一个整数k0<k<255,代表二值化处理时选取的临界值;

接下来有m行,每行包含n0~255整数,表示灰度图的像素值,同一行中相邻两个数用空格隔开。

 

输出

m行,每行包含n个整数,只能是0255,代表转化二值图的像素值,相邻两个数用空格隔开。

 

样例输入

2 3
120
250 120 115
0 200 27

样例输出

255 255 0 
0 255 0

来源/分类