一、实战原理
钢笔画又称铅笔画。
8bit代表的灰度值0~255,代表着从黑到白。这里提取出Ycbcr格式的图像中的Y分量,从而可以得到一张灰度图像。这个Y分量的值与我们设置的阈值(通过按键切换阈值)比较,从而输出全1或全0的图像,这个图像就是钢笔画。
二、matlab实现
阈值设置是100。
%-------------------------------------------------------------------------- % 钢笔画 %-------------------------------------------------------------------------- clc; clear all; RGB = imread('G: est10 Pen drawingimage.jpg'); %读取图像 gray = rgb2gray(RGB); %灰度图 [ROW,COL,N] = size(gray); %获得图像尺寸[高度,长度,维度] pen = zeros(ROW,COL); value = 80; for i = 1:ROW for j = 1:COL pen(i,j) = gray(i,j); if gray(i,j) > value pen(i,j) = 255; else pen(i,j) = 0; end end end subplot(2,1,1);imshow(gray); title('Y分量灰度图'); subplot(2,1,2);imshow(pen);title('钢笔画');
matlab效果:
三、fpga实现
这里就是将Y分量的值与我们设置的阈值进行比较。
这里设置两个按键,一个按键让阈值加10,一个按键让阈值减10。
fpga效果:
按道理来说,阈值为0时,画面应该是全白的,而且这里阈值为80时,画面就等于matlab阈值100。可能的导致原因是提取Y分量的同步信号不对。