重庆分公司,新征程启航

为企业提供网站建设、域名注册、服务器等服务

图像去黑边vb.net 自动去除图像黑边

求大神指点 vb.net 的 BitBlt GDI32 怎么去掉黑边呢?

为什么 BitBlt 第二第三参数是200,这是绘制到位图上的坐标起点,一般是0。如果绘制宽度和坐标起点不能使位图全覆盖上,留出的空白部分自然为黑色的。

成都创新互联公司专注于高安企业网站建设,响应式网站,商城网站开发。高安网站建设公司,为高安等地区提供建站服务。全流程定制开发,专业设计,全程项目跟踪,成都创新互联公司专业和态度为您提供的服务

假如下面那样,没见有黑边:

hBMP = CreateCompatibleBitmap(hDC, 500,600)

hBMPOld = SelectObject(hMDC, hBMP)

BitBlt(hMDC,0,0, 500, 600, hDC, 0, 0, HCC0020)

hBMP = SelectObject(hMDC, hBMPOld)

python 图像旋转怎么去除黑边

去除黑边现象的办法:

1)在做图像坐标映射反查的时候,算出当前点在原始图像的外部还是内部,若在外部,判断当前像素点的X或者Y位置,找临近四个边界的像

素值代替;

该方法太过繁琐,适合自己写程序实现,如若想调用现有的一些库函数,可以考虑2)做法:

2)将待旋转的图像进行边界填充,最不济的情况下可以扩充为原始图像的大小;

旋转边界填充图像;

计算原始图像经过旋转以后的结果图像的尺寸大小;

在边界填充旋转图像上截取目标图像;(图像都是按照图像中心旋转的);

附上一段matlab人脸根据人眼位置对齐的代码:

[plain] view plain copy

eye_angle = atan2( (eye_pts(2,2) - eye_pts(1,2)),(eye_pts(2,1) - eye_pts(1,1) ) ) * 180 / pi; % 人眼的倾斜角度

if eye_angle 0

eye_angle = eye_angle + 360;

end

if floor(eye_angle) = 5 || floor( 360 - eye_angle ) = 5

continue;

end % 5度之内不做对齐操作

img = imread(img_path);

[m,n,~] = size(img);

img_pad = padarray(img,[m n],'both','replicate');% 扩充图像

img_pad_rotate = imrotate(img_pad,eye_angle,'bilinear'); % 旋转扩充图像

[m_pad_r,n_pad_r,~] = size(img_pad_rotate);

[plain] view plain copy

eye_angle = eye_angle * pi / 180;

f_cos = cos(eye_angle);f_sin = sin(eye_angle);

new_m = floor(m * abs(f_cos) + n * abs(f_sin));

new_n = floor(n * abs(f_sin) + m * abs(f_cos));% 最终对齐图像的大小

left = floor((n_pad_r - new_n) / 2);right = left + new_n;

bott = floor((m_pad_r - new_m) / 2);up = bott + new_m;

face_rorate = img_pad_rotate(bott : up,left : right,:); % 截取目标图像

figure,imshow(face_rorate)

Vb.net怎么实现图像的处理

这问题有点笼统,软糖来说说把:

图像处理由System.Drawing命名空间负责。

主要是Bitmap类和Graphics类。

Bitmap表示一个位图,可以是BMP,JPG,PNG等文件。

装载位图

Dim 位图 As Bitmap = Bitmap.FromFile("C:\Image1.PNG")

Graphics表示一张画纸,能够进行绘制操作。

它可以被窗体、控件、位图调用CreateGraphics()方法来创建。

然后调用Graphics.Draw开头的一系列函数来绘制图像和图形,Fill开头的填充图形。

创建画纸并绘制位图

Dim 画纸 As Graphics = Me.CreateGraphics()

画纸.DrawImage(位图, 100, 100, 256, 256)

可以将上面三行放到Form1_Load中测试,把路径改一下,

还可以把Me改为能在上面绘图的控件的名称。

更多内容请看MSDN的System.Drawing命名空间。

如满意,请采纳,谢谢。


当前题目:图像去黑边vb.net 自动去除图像黑边
文章分享:http://cqcxhl.com/article/ddddpgh.html

其他资讯

在线咨询
服务热线
服务热线:028-86922220
TOP