图片1111

function rotateBase64Img(src, edg, callback) {

  var canvas = document.createElement("canvas");
  var ctx = canvas.getContext("2d");

  var imgW;//图片宽度
  var imgH;//图片高度
  var size;//canvas初始大小

  if (edg % 90 != 0) {
      console.error("旋转角度必须是90的倍数!");
      throw '旋转角度必须是90的倍数!';
  }
  (edg < 0) && (edg = (edg % 360) + 360)
  const quadrant = (edg / 90) % 4; //旋转象限
  const cutCoor = {sx: 0, sy: 0, ex: 0, ey: 0}; //裁剪坐标

  var image = new Image();
  image.crossOrigin = "anonymous"
  image.src = src;

  image.onload = function () {

      imgW = image.width;
      imgH = image.height;
      size = imgW > imgH ? imgW : imgH;

      canvas.width = size * 2;
      canvas.height = size * 2;
      switch (quadrant) {
          case 0:
              cutCoor.sx = size;
              cutCoor.sy = size;
              cutCoor.ex = size + imgW;
              cutCoor.ey = size + imgH;
              break;
          case 1:
              cutCoor.sx = size - imgH;
              cutCoor.sy = size;
              cutCoor.ex = size;
              cutCoor.ey = size + imgW;
              break;
          case 2:
              cutCoor.sx = size - imgW;
              cutCoor.sy = size - imgH;
              cutCoor.ex = size;
              cutCoor.ey = size;
              break;
          case 3:
              cutCoor.sx = size;
              cutCoor.sy = size - imgW;
              cutCoor.ex = size + imgH;
              cutCoor.ey = size + imgW;
              break;
      }


      ctx.translate(size, size);
      ctx.rotate(edg * Math.PI / 180);
      ctx.drawImage(image, 0, 0);

      var imgData = ctx.getImageData(cutCoor.sx, cutCoor.sy, cutCoor.ex, cutCoor.ey);
      if (quadrant % 2 == 0) {
          canvas.width = imgW;
          canvas.height = imgH;
      } else {
          canvas.width = imgH;
          canvas.height = imgW;
      }
      ctx.putImageData(imgData, 0, 0);
      callback(canvas.toDataURL())
  };
}
  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,以下是一个可以生成1111灰度图的DCGAN生成器代码示例: ```python import torch import torch.nn as nn # 定义生成器 class Generator(nn.Module): def __init__(self, ngpu): super(Generator, self).__init__() self.ngpu = ngpu self.main = nn.Sequential( # 输入大小为100,生成1024个特征图,kernel大小4*4 nn.ConvTranspose2d(100, 1024, 4, 1, 0, bias=False), nn.BatchNorm2d(1024), nn.ReLU(True), # 输入大小为1024,生成512个特征图,kernel大小4*4 nn.ConvTranspose2d(1024, 512, 4, 2, 1, bias=False), nn.BatchNorm2d(512), nn.ReLU(True), # 输入大小为512,生成256个特征图,kernel大小4*4 nn.ConvTranspose2d(512, 256, 4, 2, 1, bias=False), nn.BatchNorm2d(256), nn.ReLU(True), # 输入大小为256,生成128个特征图,kernel大小4*4 nn.ConvTranspose2d(256, 128, 4, 2, 1, bias=False), nn.BatchNorm2d(128), nn.ReLU(True), # 输入大小为128,生成1个特征图,kernel大小4*4 nn.ConvTranspose2d(128, 1, 4, 2, 1, bias=False), nn.Tanh() ) def forward(self, input): return self.main(input) # 初始化生成器 ngpu = 1 netG = Generator(ngpu) netG.apply(weights_init) # 定义输入噪声 noise = torch.randn(1, 100, 1, 1) # 生成图像 output = netG(noise) ``` 这个生成器使用了一个五层的卷积转置神经网络,其中输入的噪声大小为100,输出大小为1,kernel大小为4*4。我们使用了更多的特征图和更深的网络来生成更大的图像。同时,我们使用了BatchNormalization和ReLU激活函数来提高模型的性能。最后,我们使用Tanh函数将输出值映射到[-1,1]之间,从而生成灰度图像。 希望这个代码能够帮助到你!

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值