编辑: 烂衣小孩 | 2018-10-22 |
??? p2:=testbmp.ScanLine[j-1];
p3:=changedbmp.ScanLine[j];
p4:=changedbmp.ScanLine[j-1];
for i:=1 to changedbmp.Width-2 do begin Rvaluearray[0]:=p2[3*(i-1)+2];
Rvaluearray[1]:=p2[3*i+2];
Rvaluearray[2]:=p2[3*(i+1)+2];
Rvaluearray[3]:=p3[3*(i-1)+2];
Rvaluearray[4]:=p3[3*i+2];
Rvaluearray[5]:=p3[3*(i+1)+2];
Rvaluearray[6]:=p4[3*(i-1)+2];
Rvaluearray[7]:=p4[3*i+2];
Rvaluearray[8]:=p4[3*(i+1)+2];
sort(Rvaluearray);
p1[3*i+2]:=Rvaluearray[4];
Rvaluearray[0]:=p2[3*(i-1)+1];
Rvaluearray[1]:=p2[3*i+1];
Rvaluearray[2]:=p2[3*(i+1)+1];
Rvaluearray[3]:=p3[3*(i-1)+1];
Rvaluearray[4]:=p3[3*i+1];
Rvaluearray[5]:=p3[3*(i+1)+1];
Rvaluearray[6]:=p4[3*(i-1)+1];
Rvaluearray[7]:=p4[3*i+1];
Rvaluearray[8]:=p4[3*(i+1)+1];
sort(Rvaluearray);
p1[3*i+1]:=Rvaluearray[4];
Rvaluearray[0]:=p2[3*(i-1)];
Rvaluearray[1]:=p2[3*i];
Rvaluearray[2]:=p2[3*(i+1)];
Rvaluearray[3]:=p3[3*(i-1)];
Rvaluearray[4]:=p3[3*i];
Rvaluearray[5]:=p3[3*(i+1)];
Rvaluearray[6]:=p4[3*(i-1)];
Rvaluearray[7]:=p4[3*i];
Rvaluearray[8]:=p4[3*(i+1)];
sort(Rvaluearray);
p1[3*i]:=Rvaluearray[4];
end;
??????? end;
??????? ChangedBmp.Assign(TestBMP);
?? ?PaintBox2.Canvas.CopyMode:=srccopy;
PaintBox2.Canvas.Draw(0,0,ChangedBmp) end;
?
3、? 效果 可能二值化处理后的图像的感觉不是很明显,但是彩色图像进行滤波后明显感觉图像清晰很多,主要原因是通过滤波后一些噪点消除了. ?图像的反色原理和实现????
1、? 基本原理 对于彩色图像的R、G、B各 彩色分量取反的技术就是图像的反色处理,这在处理二值化图像的连通区域选取的时候非常重要.如物体连通域用黑色表示,而二值化后的物体连通域图像可那是白 色的,而背景是黑色的,这时应手动选取图像的反色处理或有程序根据背景和物体连通域两种颜色的数量所占比例而自动选择是否选择选取图像的反色处理. ........