首页 > 其他分享 >matlab对倾斜图像的矫正

matlab对倾斜图像的矫正

时间:2022-08-19 22:55:50浏览次数:59  
标签:矫正 180 BW matlab rho 图像 theta rhomax row

I=imread('附件B.PNG');
f=rgb2gray(I);%灰度化
BW=edge(f,'canny');  %edge:以灰度图像为输入,'canny'为边缘检测算子
                     %     输出BW为二值图像,边缘处为白(255)其余部分为黑(0)
[row,col]=size(BW);
rhomax=round((row*row+col*col)^0.5);%计算对角线距离
A=zeros(2*rhomax,180);   %这里,实际上rho的取值范围为[-rhomax,rhomax],
                         %但是为了后面进行数量统计,转变为[1,2rhomax]
for m=1:row
    for n=1:col
        if BW(m,n)~=0 %判断为边缘
            for theta=1:180
                r=theta/180*pi; %角度转换
                rho=round(m*cos(r)+n*sin(r));
                %Hough变换
                rho=rho+rhomax+1;   %坐标平移
                                    %这里的理解,首先matlab中数组是从1开始计数,所以+1;
                                    %数组坐标不能<0,所以 +rhomax
                A(rho,theta)=A(rho,theta)+1;   %数量统计
            end
        end
    end
end
[rho,theta]=find(A>250);   %超过250个点视为共线,rho列号,theta行号,这个值可以自己设置,为了只检测到一条直线就设高了,不同图可以设置不同值
nma=length(rho)
figure
for i=1:nma
    hold on
    m=1:row;
    r=theta(i)/180*pi;
    n=(rho(i)-rhomax-m*cos(r))/(0.0001+sin(r));
    plot(n,m,'w-','LineWidth',6);
end
title('hough线检测');
if theta>90
qingxeijiao=180-theta;
else
   qingxeijiao=-theta 
end
I2 = imrotate(I,qingxeijiao,'bilinear','crop');
subplot(1,3,1);imshow(I);title('原始图像')
subplot(1,3,2);imshow(f);title('二值化图像')
subplot(1,3,3), imshow(I2); title('倾斜校正');

结果显示:

 

标签:矫正,180,BW,matlab,rho,图像,theta,rhomax,row
From: https://www.cnblogs.com/kuangxinru/p/16604332.html

相关文章

  • 简易图像编辑器Seashore
    为大家带来一款简易的图形编辑器,Seashore许您使用多个图层,使您可以使用画笔,并集成文本工具,帮助大家快速绘图和编辑图像。软件下载地址这是一个易于使用但功能强大的图像......
  • Python|使用Python实现图像的重采样
    基础知识图像重采样就是从高分辨率遥感影像中提取出低分辨率影像,或者从低分辨率影像中提取高分辨率影像的过程。常用的方法有最邻近内插法、双线性内插法、三次卷积法等。......
  • 19图像卷积
    点击查看代码importtorchfromtorchimportnnfromd2limporttorchasd2ldefcorr2d(X,K):#@save"""计算二维互相关运算"""h,w=K.shapeY=......
  • C#-OpenCvSharp图像的归一化
    本文链接:https://blog.csdn.net/qq_48705696/article/details/109891213什么是归一化?归一化就是要把需要处理的数据经过处理后(通过某种算法)限制在你需要的一定范围内。......
  • 跟我学Python图像处理丨基于灰度三维图的图像顶帽运算和黑帽运算
    摘要:本篇文章结合灰度三维图像讲解图像顶帽运算和图像黑猫运算,通过Python调用OpenCV函数实现。本文分享自华为云社区《[Python图像处理]十三.基于灰度三维图的图像顶帽运......
  • matlab画图美化思路
     画图区域带框比不带框(box)好看,外框线条粗一点比细一点好看图例不带外框好看(box)外框上标刻度,刻度朝里比朝外好看配色要协调,可以搜配色尤其是画折线,线条粗比细好看......
  • 基于MindSpore框架的室内场景图像分割方法研究
    基于MindSpore框架的室内场景图像分割方法研究概述 本文以华为最新国产深度学习框架Mindspore为基础,研究室内场景语义分割方法。本文基于注意力机制改进U-Net网络,并选......
  • C#/VB.NET 替换 PDF 文件上的现有图像
    我们都知道对PDF文件进行修改和编辑不是一件容易的事。但有时当我们想用新的图像来替换PDF文件上的现有图像时,该怎么办呢?别担心,本文将向您展示如何在C#/VB.NET中替换PDF......
  • ENVI5.4 全新图像分类框架
    ENVI5.4全新的图像分类框架(ENVIclassificationframework)提供了强大、灵活的分类方法。我们可以基于一幅图像创建并训练一个分类算法(分类器),然后将其应用于其他相似的数......
  • 1066 图像过滤——15分
    图像过滤是把图像中不重要的像素都染成背景色,使得重要部分被凸显出来。现给定一幅黑白图像,要求你将灰度值位于某指定区间内的所有像素颜色都用一种指定的颜色替换。输入格......