DAY13 Matlab直角坐标系实现图像旋转

% 直角坐标系实现图像旋转
im=rgb2gray(imread('robot.jpg'));
figure,imshow(im);
[row,col]=size(im);
a=pi/6; % 逆时针旋转30度

%得到行的初始矩阵
r1=repmat(1:row,row,1);
i=r1';

%得到列的初始矩阵
j=repmat(1:col,col,1);

i1=zeros(row,col);
for m=1:row
for n=1:col
i1(m,n)=round(m*cos(a)-n*sin(a)); %获得旋转后的i像素值 并且取整
end 
end

j1=zeros(row,col);
for m=1:row
for n=1:col
j1(m,n)=round(m*sin(a)+n*cos(a)); %获得旋转后的j像素值 并且取整
end 
end

%判断旋转后的i,j是否小于0 坐标调整
if min(min(i1))<min(min(j1))
if min(min(i1))<0
k=abs(min(min(i1))); 
new_min=min(min(i1))+(k+1);
A=i1+ones(row,col)*(k+1);
end
elseif min(min(j1))<0
k=abs(min(min(j1))); 
new_min=min(min(j1))+(k+1);
A=j1+ones(row,col)*(k+1);
end

new_max_i=max(max(A)); %最大行
new_max_j=max(max(j1)); %最大列
G=zeros(new_max_i,new_max_j); %构造空白的新画布

%接下来 进项数据填充

for m=1:row
for n=1:col
G(A(m,n),j1(m,n))=im(m,n);
end
end

figure,imshow(uint8(G));

 

 

 

  

转载于:https://www.cnblogs.com/Qsir/p/5644850.html

实现日历坐标可以使用Java的Calendar类和Spring Boot框架来实现。具体步骤如下: 1. 创建一个Spring Boot项目,并添加必要的依赖(如web、thymeleaf等)。 2. 在Controller中添加一个方法,用于处理请求并返回视图。例如: ```java @GetMapping("/calendar") public String showCalendar(Model model) { // 获取当前年份和月份 Calendar calendar = Calendar.getInstance(); int year = calendar.get(Calendar.YEAR); int month = calendar.get(Calendar.MONTH) + 1; // 将年份和月份传递给视图 model.addAttribute("year", year); model.addAttribute("month", month); return "calendar"; } ``` 3. 创建一个Thymeleaf视图(例如名为“calendar.html”的文件),在其中实现日历坐标。可以使用HTML和CSS创建网格,使用Thymeleaf表达式动态生成日期。例如: ```html <table> <thead> <tr> <th>星期日</th> <th>星期一</th> <th>星期二</th> <th>星期三</th> <th>星期四</th> <th>星期五</th> <th>星期六</th> </tr> </thead> <tbody> <tr th:each="week,weekIndex : ${weeks}"> <td th:each="day : ${week}" th:class="${day.currentMonth} ? '' : 'other-month'"> <span th:text="${day.date}"></span> </td> </tr> </tbody> </table> ``` 其中,变量“weeks”是一个二维数组,表示当前月份的日期。变量“day”表示一个日期对象,包含日期、是否是当前月份等信息。 4. 在Controller中实现“weeks”变量的生成。例如: ```java List<List<DateInfo>> weeks = new ArrayList<>(); Calendar calendar = Calendar.getInstance(); calendar.set(year, month - 1, 1); int currentMonth = month; while (calendar.get(Calendar.MONTH) == (month - 1)) { List<DateInfo> week = new ArrayList<>(); for (int i = 1; i <= 7; i++) { DateInfo dateInfo = new DateInfo(); dateInfo.setDate(calendar.get(Calendar.DATE)); dateInfo.setCurrentMonth(calendar.get(Calendar.MONTH) == (month - 1)); week.add(dateInfo); calendar.add(Calendar.DATE, 1); } weeks.add(week); } model.addAttribute("weeks", weeks); ``` 其中,“DateInfo”是一个自定义类,包含日期和是否是当前月份的信息。 5. 运行Spring Boot应用程序,并访问“/calendar”页面,即可看到生成的日历坐标。 注意:以上代码仅为示例,实际实现中可能需要根据具体需求进行修改。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值